我正在尝试结合两个htaccess重写规则:一个用于处理无扩展链接,另一个用于将丢失的文件发送到索引页面来处理它们。我有单独的工作代码,但将两者结合起来很棘手。
规则是这样的:
原因是我有一些静态页面,有些是从数据库动态创建的。
FYI"无扩展"代码是
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+)/?$ $1.php [L]
和"重定向到索引"代码是
RewriteEngine On
RewriteRule (.*) index.php [PT,QSA]
答案 0 :(得分:1)
这样做:
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
答案 1 :(得分:1)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [L]
在案例4中,如果您必须处理不存在的文件请求(有或没有扩展名),您需要知道在index.php
内请求了哪个网址。为此,添加GET
url
参数,您可以在$_GET['url']