source

word press permalinks가 작동하지 않음 - htaccess는 정상으로 보이지만 페이지에 404 오류가 표시됨

gigabyte 2023. 2. 28. 23:34
반응형

word press permalinks가 작동하지 않음 - htaccess는 정상으로 보이지만 페이지에 404 오류가 표시됨

permalink structure를 /%postname%/로 업데이트하여 .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

그래도 페이지에 404개의 오류가 있어요.그 밖에 변경해야 할 설정이 있습니까?

편집: Apache 로그가 영구 링크된 폴더를 직접 찾는 것처럼 보이는 경우.예:

[Wed Oct 16 11:12:32 2013] [error] [client xx.xx.xx.xxx] File does not exist: /var/www/exampledomain/news, referer: http://exampledomain.com/

이 페이지에 표시되는 다른 사용자의 경우 - (Apache를 웹 서버로 사용하는 경우) httpd.conf 또는 sites-available/sitename.conf 파일을 편집해야 하는 경우도 있습니다.

웹 디렉토리는 .htaccess 파일이 설정을 덮어쓰도록 허용해야 합니다.

파일에서 Web dir를 찾습니다.conf 파일의 대부분에 포함되거나 VirtualHost 섹션으로 구분됩니다.

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

     #other settings ---

</Directory>

그러면 WordPress 내에서 원하는 대로 WordPress URL을 설정할 수 있습니다.

***는 - 을 위해 사용하다.처음에 최소한의 권한을 사용합니다.하지 않는 는, 「 」 「 」 「 」 「 」 「 」를 합니다.AllowOverride FileInfoAllowOverride All

리라이트 룰의 동작을 방해하는 것은 여러 가지가 있습니다.내 우분투 서버는 퍼멀링크를 작동시키기 위해 세 가지를 변경해야 했다.

apache2의 새로운 버전에서는 다음 모듈을 활성화해야 합니다.

sudo a2enmod rewrite
sudo service apache2 restart

apache2.conf 파일을 수정해야 할 수도 있습니다.

sudo nano /etc/apache2/apache2.conf

웹 디렉토리 재정의 규칙을 AllowOverride All로 변경합니다.

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

그런 다음 서비스를 다시 시작합니다.

WordPress 설치 디렉터리의 .htaccess 파일은 웹 서버가 소유하거나 읽을 수 있거나 수정할 수 있어야 합니다.

이것은 소유자를 www-data(일반적으로 웹 서버 사용자)로 변경하거나 권한을 변경하여 수행할 수 있습니다.

sudo chown www-data /var/www/wordpress-install/.htaccess 

또는

sudo chmod 664 /var/www/wordpress-install/.htaccess

Wordpress 관리 백엔드에 로그인하여 permalink 설정을 저장하면 정상적으로 동작합니다.

이것으로 해결되었습니다.mod_rewrite를 활성화하지 않았습니다.그래서 이렇게 했어요.

$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
  service apache2 restart
$ service apache2 restart
 * Restarting web server apache2                                                                              

Apache에게 .htaccess 파일을 따르도록 지시할 수 있습니다.apache.conf 파일을 편집하여 이 작업을 수행할 수 있습니다.

$sudo nano /etc/apache2/apache.conf

행까지 아래로 스크롤합니다.기본값은 다음과 같습니다.

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

AllowOverride 값을 All로 변경하여 다음과 같이 됩니다.

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

ctrl+x 키를 누른 후 y 키를 눌러 구성 파일을 저장합니다.서버를 변경하려면 먼저 mod_rewrite by를 활성화합니다.

$ sudo a2enmod rewrite

그런 다음 서버를 재시작합니다.

$ sudo service apache2 restart

알았어!

출처: https://www.wst.space/ridling-wordpress-permalink-setup-issues/

아래의 .htaccess 코드를 사용하여 아래 코드에 프로젝트 이름(www 디렉토리에 있음)을 입력합니다.

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

# END WordPress

감사해요.

나는 같은 문제에 직면해 있었고 한 가지 더 찾아야 할 것이 있었다.

워드프레스 퍼멀링크가 올바르게 작동하려면 다음과 같이 하십시오.

  1. 워드프레스 디렉터리에 파일 및 폴더에 대한 적절한 권한 모드가 있는지 확인합니다.
    sudo find . -type f -exec chmod 644 {} +
    sudo find . -type d -exec chmod 755 {} +

  2. 의 경우 " "를 하십시오.mode_rewrite되어 있습니다.
    sudo a2enmod rewrite
    sudo service apache2 restart

이것이 당신의 문제를 설명하는지 확인해야 할 또 하나의 사항입니다.

  • htaccess 및 mod_displays가 올바르게 설정되어 있다.
  • 일부 과속링크에서는 404 오류 발생, 다른 과속링크에서는 404 오류 발생

Wordpress 설치와 동일한 폴더에 Wordpress permalink와 일치하는 이름을 가진 기존 .php 파일 또는 디렉터리가 없는지 확인하십시오.

예를 들어 다음과 같은 Wordpress 페이지 permalinks가 있는 경우:

 example.com/name_one/
 example.com/name_two/

Wordpress 설치가 들어 있는 디렉토리에는 다음 파일이 포함됩니다.

 name_one.php

결과는 다음과 같습니다.

  • http://example.com/name_two/ – 이 permalink는 동작합니다.
  • http://example.com/name_one/ – 이 permalink는 작동하지 않습니다.

더 중요한 것은 두 번째 URL이 name_one.php를 실행하는 대신 404를 표시한다는 것입니다.즉, 이 문제는 잘못 기술된 .htaccess 파일과 같은 증상을 나타낼 수 있기 때문에 진단하기가 어렵습니다.

ubuntu에 새 사이트 또는 복제된 사이트를 설정하는 경우 사이트 구성 파일을 심볼 링크해야 합니다. /etc/apache2/sites-available/your-file.conf/etc/apache2/sites-enabled합니다.


실행:sudo a2ensite your-file.conf , , , 「 」sudo service apache2 reload

sudo a2dissite your-file.conf configsymblink를 .

WAMP 사용자(Windows):일부 WAMP 버전(모든 버전?)에서는 기본적으로 mod_rewrite를 활성화하지 않거나 다음 SymLink를 허용하지 않습니다.필요한 기능을 활성화하려면apache/conf/httpd.conf fileLoadModule rewrite_module modules/mod_rewrite.so (즉, 줄 맨 앞에 있는 해시/파운드 기호를 삭제합니다)그리고 같은 파일 아래에는 "Options FollowSymlinks(옵션 팔로우 심링크)" 행으로 시작하는 섹션이 있습니다.해당 섹션의 두 번째 행을 "에서 변경합니다.AllowOverride none ~ " 。AllowOverride allWAMP의 httpd.conf.da.이제 퍼멀링크가 효과가 있을 거야

자세한 내용은 Permalink 문제 수정

또 다른 가능성:MacOS를 업데이트해서 Apache 구성 파일을 항상 엉망으로 만듭니다.다른 것들 중에서, 나는 또한 다시 활성화 시켜야 했다.mod_rewrite모듈.이렇게 써있는 줄을 찾아봐

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

그리고 해시를 제거해서 이렇게 써있잖아

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Apache를 사용하는 경우 VirtualHost의 디렉토리에서 오류가 없음을 다시 확인하십시오. 잘못된 디렉토리를 입력해도 Apache는 경고를 표시하지 않습니다.

<Directory /var/www/html/site/wordpress>
  Options FollowSymLinks
  AllowOverride Limit Options FileInfo
  DirectoryIndex index.php
  Require all granted
</Directory>
<Directory /var/www/html/site/wordpress/wp-content>
  Options FollowSymLinks
  Require all granted
</Directory>

언급URL : https://stackoverflow.com/questions/19400749/wordpress-permalinks-not-working-htaccess-seems-ok-but-getting-404-error-on-pa

반응형