programing

Post name permalink HTTP 404

copyandpastes 2023. 3. 15. 23:26
반응형

Post name permalink HTTP 404

이 사이트의 첫 페이지를 작성했습니다.기본 Permalink 설정을 사용하면 작동합니다.

Post name을 사용하도록 permalink 설정을 변경하면 HTTP 404가 표시됩니다.

뭐가 잘못됐는지, 내가 뭘 망가뜨렸는지 모르겠어.누가 고쳐줄 사람 있어요?

이 사이트는 Apache에서 호스트됩니다.

페이지가 존재하며 링크가 끊어졌습니다.

XAMPP 또는 MAMP를 사용하고 있습니까?WordPress Codex: Fixing Permalink Problems에서 따온 몇 가지 일반적인 딸꾹질이 있습니다.

XAMPP 사용자(Windows):일부 버전의 XAMPP는 기본적으로 mod_rewrite를 활성화하지 않습니다(단, Apache에서 컴파일되어 있습니다).이 기능을 활성화하고 WordPress가 예쁜 permalink를 작성하기 위해 필요한 .htaccess 파일을 쓸 수 있도록 하려면 apache/conf/httpd.conf를 열고 LoadModule rewrite modules/mod_rewrite.so 행의 코멘트를 해제해야 합니다(즉, 행의 선두에 있는 해시/파운드 부호를 삭제합니다).

WAMP 사용자(Windows):일부 WAMP 버전(모든 버전?)에서는 기본적으로 mod_rewrite를 활성화하지 않거나 다음 SymLink를 허용하지 않습니다.필요한 기능을 활성화하려면 apache/conf/httpd.conf 파일로 이동하여 텍스트에디터로 열고 LoadModule rewrite modules/mod_rewrite.so 행의 코멘트를 해제합니다(즉, 행 맨 앞에 있는 해시/파운드 기호를 삭제합니다).그리고 같은 파일 아래에는 "Options FollowSymlinks(옵션 팔로우 심링크)" 행으로 시작하는 섹션이 있습니다.해당 섹션의 두 번째 행을 "AllowOverride none"에서 "AllowOverride all"로 변경합니다.편집한 httpd.conf를 저장하고 모든 WAMP 모듈을 재시작합니다.이제 퍼멀링크가 효과가 있을 거야

또한 샌드박스에 mod_rewrite가 없는 경우 Permalinks가 표시될 수 있습니다.mod_rewrite이용할 수 있는.

아파치

Apache를 사용하는 경우 일반적으로 두 가지 다른 원인이 고장난 퍼멀링크의 원인이 있습니다..htaccess(권한 설정 때문에) 생성되지 않거나 Apache의AllowOverride디렉티브가 활성화되지 않았습니다.

먼저 서버에 SSH를 하면 루트에 생성된 .htaccess 파일이 표시됩니까?그렇지 않으면 WordPress에 해당 파일을 쓸 수 있는 권한이 없을 수 있습니다.파일이 존재할 수도 있지만 WordPress가 편집할 수 없습니다.어느 경우든 이 파일을 666으로 만들 수 있습니다.

그런 다음 Apache 구성에 다음 설정이 있는지 확인하십시오.

  <Directory />
    Options FollowSymLinks
    AllowOverride All
 </Directory>

마지막으로 WordPress Codex의 "Permalink 문제 수정" 섹션을 읽어보십시오.왜 퍼멀링크가 작동하지 않는지에 대한 몇 가지 다른 조언과 제안들이 있다.

..htaccess파일을 내 웹 사이트 루트 폴더에 넣습니다.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

WordPress는 쓰기 권한이 있는 경우 이 작업을 자동으로 수행합니다.을 쓸 수 되어 위의 코드 할 수..htaccess.

후, ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★apache2.conf에서는 파에 . Linux 、 、 그 linux/etc/apache2/apache2.conf 거예요 , 하다, 하다, 이런 요.

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AllowOverride None로로 합니다.AllowOverride FileInfo.

마지막으로 다음 명령을 수행합니다.

sudo a2enmod rewrite
service apache2 restart

이 모든 단계는 작동하기 위해 필요했습니다.

다른 사이트에서 이 게시물을 발견하면 이미 많은 사람들이 도움을 받았다.

드디어 문제를 풀었어!해결 방법:커스텀 퍼머링크 구조(http://kyl.fi/%category%/%postname%/)를 사용하고 있었습니다.후행 슬래시(마지막 /)와 voila를 제거했습니다.다만, 이전에도 후행 슬래시가 있는 퍼멀링크 구조를 문제없이 사용한 것이 확실하기 때문에, 아직 혼란스러우므로, 누군가 설명을 해 주신다면, 이 건에 대해 더 듣고 싶다고 생각하고 있습니다.

모든 표준 퍼말링크는 뒤에/뒤가 있다.

centos 8 및 apache 2.4에서 사이트 .conf 파일에서 /etc/httpd/conf.d를 찾아 AllowOverride All을 추가합니다.이 예시는 다음과 같습니다.

<Directory /path/to/site>
     #add the following setting to allow .htaccess in your web dir to work
     AllowOverride All

</Directory>

80 Listen 포트

    #Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/www/mysite.com"
    ServerName www.mysite.com

    # Other directives here
    

        <Directory "/var/www/mysite.com">
                Options FollowSymLinks
                AllowOverride All
        </Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.mysite.com [OR]
RewriteCond %{SERVER_NAME} =mysite.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

내 SSL 가상 호스트:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot "/var/www/mysite.com"
    ServerName www.mysite.com

    # Other directives here
    <Directory "/var/www/mysite.com">
                Options FollowSymLinks
                AllowOverride All
        </Directory>
ServerAlias mysite.com
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/mysite.com/fullchain.pem
SSLCertificateKeyFile /live/mysite.com/privkey.pem
</VirtualHost>
</IfModule>

Apache 서비스를 재시작합니다..htaccess를 확인합니다(내 사이트에서 .htaccess는 /var/www/mysite.com My .htaccess에 있습니다).

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^helloWorld/?$ /index.php [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

look hello 월드 리라이트 규칙URL www.mysite.com/helloWorld 를 기동했을 때에 브라우저에 홈페이지가 표시되었을 경우, 설정은 유효하고, 사이트의 퍼멀링크 패스는 유효합니다.

제 경우 워드프레스 설치 시 NGINX 웹 브라우저를 사용하고 있습니다.수정은 다음 코드 스니펫을 NGINX 디렉티브에 추가하는 것입니다.

location / { try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ { expires max; log_not_found off; }

우수한 (오픈 소스) CPanel 대체품을 사용하는 경우 사이트 페이지로 이동하여 옵션 탭에서 NGINX Directives에 대한 위의 코드 스니펫을 입력합니다.ISPconfig에는 [Options]탭에 접속하기 위한 공통 코드 스니펫을 추가하는 기능이 있습니다.

위의 수정 후 WordPress의 Permalinks 옵션 중 하나를 사용할 수 있게 되었습니다.

테스트 완료 솔루션:

예를 들어 apache2 구성 파일에서 다음을 수행합니다.

/etc/mysite2/mysite-enabled/000-default.conf 또는 mysite.conf 등.

되어 있고 있지 합니다.param은 비어 있지 않습니다.ServerName www.example.com or 123.212.333.111

또한 다음과 같이 디렉토리 규칙을 설정했는지 확인하십시오(재작성 규칙이 .htaccess에서 활성화되지 않았을 수 있으므로 여기에 두고 .htaccess가 .htaccess가 작동하지 않는 이유를 알아봅니다).

<Directory /var/www/html>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all

       RewriteEngine On
       RewriteBase /
       RewriteRule ^index\.php$ - [L]
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule . /index.php [L]
</Directory>

2점 체크: 1이어야 합니다..htaccess 파일에 코드 추가:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
  1. 또한 .htaccess 파일의 권한은 644여야 합니다.

이 코드를 /etc/apache2/sites_available/000-default.conf에 추가했습니다.

<Directory "/var/www/mysite.com">
    Options FollowSymLinks
    AllowOverride All
</Directory>

Apache 2.4.46 (Ubuntu)를 사용하고 있습니다.감사해요.

언급URL : https://stackoverflow.com/questions/24265305/http-404-with-post-name-permalink

반응형