apache mod_rewrite
過去 6 か月間エラーなしで使用しているサイトがあります。
次の書き換えルールがあります。
RewriteRule ^products/([a-z\-]+)/$ /products.php?category=$1 [NC,L]
ここに私のページのコードがありますproducts.php
$category = $_GET['category'];
if (isset($category)) {
// do some processing here
}
else {
header("Location: /500.html");
exit;
}
このルールに該当するリンクの例は次のとおりです。/products/lighting-poles/
実際の書き換えがまだ行われているのに、にマッピング([a-z\-]+)
されていない理由を知っている人はいcategory=$1
ますか?
追加情報
.htaccess
ホスト上のファイルで行がコメントアウトされていることに気付いたOptions +FollowSymLinks
ので、最初にこれを再度有効にして、サイトが apache の白い画面500
エラーを返すようにしました。
.htaccess ファイルの詳細
<IfModule mod_rewrite.c>
#Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add a trailing slash to paths without an extension
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule ^(.*)$ $1/ [L,R=301]
# other rules including problem rule here
</IfModule>