好的,我在网站上有一个目录,其中有几个文件可以说:
faqs.php
index.php
info.php
如果有人使用以下网址访问我的网站:
site.com/faqs
我希望他们得到faqs.php所以我做其中一个:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC]
我还想要在检查.php扩展名后仍然找不到任何文件,以显示:
faqs.php?question=PATH
所以,如果他们出现了:
site.com/what_is_your_problem_anyways
他们会得到:
faqs.php?question=what_is_your_problem_anyways
如果不进行索引,信息和常见问题解答重定向,最明智的方法是什么?
答案 0 :(得分:0)
以下内容可让您实现自己想要的目标
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).php$ /faqs.php?question=$1 [R=302,L]
一旦您知道重定向有效,就将R=302
更改为R=301
。
答案 1 :(得分:0)
您需要以下两条规则:
RewriteEngine On
# To internally add .php ext if .hp file is found
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
# if not found then redirect to /faqs.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /faqs.php?question=$1 [QSA,L]