42

パーマリンク構造を /%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/
4

11 に答える 11

82

このページにたどり着いた他の人にとって - もう 1 つの問題は (Web サーバーとして Apache を使用している場合)、httpd.conf または sites-available/sitename.conf ファイルを編集する必要があることです。

Web ディレクトリでは、.htaccess ファイルがその設定を上書きできるようにする必要があります。

ファイルで Web ディレクトリを探します。これは、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 を設定できます。

***編集済み - nietonfir 更新ありがとうございます。最初は最小限の権限を使用してください。これが機能しない場合は、次のものに置き換えAllowOverride FileInfoますAllowOverride All

于 2013-10-30T20:08:11.090 に答える
31

これは解決されました。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                                                                              
于 2013-10-16T10:29:27.823 に答える
12

.htaccess ファイルに従うように apache に指示する必要があります。これを行うには、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/riddling-with-wordpress-permalink-setup-issues/

于 2018-05-30T11:58:28.053 に答える
6

以下の .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

ありがとう

于 2013-10-16T13:20:57.610 に答える
0

さらに別の可能性: macOS を更新したところ、常にApache 構成ファイルが台無しになります。とりわけ、mod_rewriteモジュールを再度有効にする必要がありました。次の行を見つけます。

#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

そして、ハッシュを削除して、

LoadModule rewrite_module libexec/apache2/mod_rewrite.so
于 2017-12-15T00:20:51.467 に答える
0

ubuntu で新しいサイトまたはクローン サイトをセットアップする場合は、サイト構成ファイル/etc/apache2/sites-available/your-file.conf/etc/apache2/sites-enabledフォルダーなどにシンボリック リンクすることを忘れないでください。これにより、Apache がそれをロードします。


実行するだけです: sudo a2ensite your-file.conf、次にsudo service apache2 reload.

sudo a2dissite your-file.confシンボリックリンクを削除するには、つまり構成を無効にします。

于 2015-01-10T18:01:53.047 に答える