我的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^product-([^/]+).html$ index.php?tid=$1 [L]
RewriteRule ^links-([^/]+).html$ index.php?page=links&lid=$1 [L]
RewriteRule ^([^/]+).html$ index.php?page=$1 [L]
问题:
如果我放入主站点目录文件test.html
,它将变为不可见。
如果我更改了我的htaccess文件规则:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+).html$ index.php?page=$1 [L]
RewriteRule ^product-([^/]+).html$ index.php?tid=$1 [L]
RewriteRule ^links-([^/]+).html$ index.php?page=links&lid=$1 [L]
我在网址/product-10.html
中有404错误,但test.html
可用。
如果在两种情况下都可以这样做( test.html 必须可用,如果存在且product-10.html必须重定向到 index.php?tid = 10 )?
答案 0 :(得分:1)
首先忽略单独规则中的所有真实文件和目录。
使用此代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^product-([^/]+)\.html$ index.php?tid=$1 [L,QSA]
RewriteRule ^links-([^/]+)\.html$ index.php?page=links&lid=$1 [L,QSA]
RewriteRule ^([^/]+)\.html$ index.php?page=$1 [L,QSA]