这是我的.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^(.*) data.php?chn=$1 [L,QSA]
我有两个php文件。
index.php和data.php
当请求为domain.com/和data.php时,我想调用index.php,当请求为domain.com/s(任何东西(.
从index.php重新路由…
if (!empty($_GET['chn'])) {
require('data.php');
exit();
}
data.php已经有$_GET['chn']可用。
或者,如果你没有排队等待get-var,那么你可以检查REQUEST_URI并做同样的事情:
if (@$_SERVER['REQUEST_URI']!='/')) {
require('data.php');
exit();
}
RewriteEngine On
RewriteRule ^([^'.]+)$ $1.php [NC,L]
RewriteRule ^/('d+)*$ ./data.php?chn=$1
试试这个。
注意:在您想要的情况下使用.htaccess时,将/
放在域名后面将触发第二个RewriteRule情况,这意味着用户将尝试按字面意思打开domain.com/data.php?chn=
。
您需要将正则表达式模式从(.*(更改为
试试这个规则:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/data'.php [NC]
RewriteRule ^(.+) data.php?chn=$1 [L,QSA]
它的工作!谢谢大家使用这个代码:
RewriteEngine On
RewriteBase /
RewriteRule ^([^'.]+)$ data.php?chn=$1 [L,QSA]