私はいくつかのmod_rewriteルールを書こうとしています。今はすべてがうまくいきます。私の一般的なURLは次のようになり瞬間:現時点ではMod_rewriteは、PHPファイルが存在するかどうかを確認します。
http://website.com/about-us
http://website.com/privacy
about-us
とprivacy
が.phpファイルとして存在していないため、これらの2つのリンクは、content.php
にmod_rewrittenされているのではなく、その内容がに保存されていますcontent.phpが取得するデータベース。
私は別のURLがあります。
http://website.com/contact-us
それはカスタムデータが含まれているため、.phpのファイルとして存在しません。 contact-us.php
が存在するかどうかを確認する方法を教えてください。
RewriteEngine On
# I want the following condition and rule to look to see if the .php file exists,
# and if it does, redirect to the physical page, otherwise, redirect to content.php
RewriteCond %{DOCUMENT_ROOT}/([a-zA-Z0-9\-_]+).php -f
RewriteRule ^([a-zA-Z0-9\-_]+)\.php$ [L]
RewriteRule ^([a-zA-Z0-9\-_]+)$ /content.php [L]
RewriteRule ^(product1|product2|product3)/(designer1|designer2|designer3)$ /search.php?productType=$1&designer=$2 [L]
RewriteRule ^sale/(product1|product2|product3)$ /search.php?sale=1&productType=$1 [L]
何か、さらに情報が必要な場合、私に知らせてください!それがない場合は、そのままでそれ以外の場合は、以下website.com/content.php
にリダイレクトが私のmod_rewriteファイルで、website.com/contact-us.php
にwebsite.com/contact-us
をリダイレクト私は返事:)
応答のおかげで、残念ながら、それは、500内部サーバーエラーを考え出す:( –
は '/' '%{DOCUMENT_ROOT}%{REQUEST_URI}'の間を削除します。 –
他の 'RewriteRule'のためのより簡単なパターンマッチングを見てください。 –