ローカルマシンで仮想ホストを構成しましたが、すべて正常に動作しています。ここで、SEOフレンドリーなURLを使用します。これを実現するために、.htaccessファイルを使用しました。
私の仮想ホスト構成は次のとおりです。
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/ypp"
ServerName ypp.com
ServerAlias www.ypp.com
##ErrorLog "logs/dummy-Host2.localhost-error.log"
##CustomLog "logs/dummy-Host2.localhost-access.log" combined
</VirtualHost>
私の.htaccessファイルには次のものがあります:
AllowOverride All
RewriteEngine On
RewriteBase /ypp/
RewriteRule ^/browse$ /browse.php
RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1
RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2
上記の.htaccess設定は機能していません。その後、仮想ホストの設定を変更し、機能しています。新しい仮想ホスト設定は次のとおりです。
<VirtualHost *:80>
RewriteEngine On
RewriteRule ^/browse$ /browse.php
RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1
RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2
ServerAdmin [email protected]
DocumentRoot "C:/xampp/htdocs/ypp"
ServerName ypp.com
ServerAlias www.ypp.com
##ErrorLog "logs/dummy-Host2.localhost-error.log"
##CustomLog "logs/dummy-Host2.localhost-access.log" combined
<Directory "C:/xampp/htdocs/ypp">
AllowOverride All
</Directory>
</VirtualHost>
URL書き換え用の.htacessファイルのどこが間違っているのか教えてください。変更ごとにApacheを再起動するため、仮想ホストの設定を使用したくありません。
サーバー構成のAllowOverride All
セクションに<Directory/>
を配置する必要があります。
オプションを許可できる唯一のApache構成ファイルは、サーバーに直接あるもの(メインファイル、仮想ホストなど)です。
.htaccessファイルはremove権限のみを上書きできます。
あれは:
<VirtualHost *:80>
DocumentRoot "C:/xampp/htdocs/ypp"
ServerName ypp.com
ServerAlias www.ypp.com
##ErrorLog "logs/dummy-Host2.localhost-error.log"
##CustomLog "logs/dummy-Host2.localhost-access.log" combined
<Directory "C:/xampp/htdocs/ypp">
AllowOverride All
</Directory>
</VirtualHost>
および.htaccessファイル:
RewriteEngine On
RewriteBase /ypp/
RewriteRule ^/browse$ /browse.php
RewriteRule ^/browse/([a-z]+)$ /browse.php?cat=$1
RewriteRule ^/browse/([a-z]+)/([a-z]+)$ /browse.php?cat=$1&subcat=$2