是的,我已经读过关于此的其他类似问题,这就是我提出这个可能的解决方案的方法:
# Turn on the mod_rewrite engine
RewriteEngine On
# IF the request filename with .php extension is a file which exists
RewriteCond %{REQUEST_FILENAME}.php -f
# AND the request is not for a directory
RewriteCond %{REQUEST_URI} !/$
# Redirect to the php script with the requested filename
RewriteRule (.*) $1\.php [L]
这可以通过重写请求,例如:/about-us
到about-us.php
,但如果你转到/about-us/
, 就不会工作。
我尝试过以下但是没有用:
# Redirect to the php script with the requested filename
RewriteRule (.*)/? $1\.php [L]
它与第二个RewriteCond
有什么关系吗?
基本上我希望它失败(如果可能)如果请求是针对真实文件OR目录,但是如果它既不存在,那么它应该重写为PHP脚本,无论请求是否有结尾斜杠。
可以这样做吗?
答案 0 :(得分:1)
以这种方式遵守规则:
当.htaccess和.php文件位于子目录中时,请使用:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/work/Client_Name/public_html/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]
当.htaccess和.php文件直接在站点的根目录中时,请使用:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]