这是我的.htaccess如何设定正确的重写规则为epmty查询
RewriteEngine On
RewriteBase/
RewriteRule ^(.*) data.php?chn=$1 [L,QSA]
我有2个PHP文件。
的index.php和data.php
我想打电话的index.php当请求是domain.com/和data.php当请求的是domain.com/(anything)。
这是我的.htaccess如何设定正确的重写规则为epmty查询
RewriteEngine On
RewriteBase/
RewriteRule ^(.*) data.php?chn=$1 [L,QSA]
我有2个PHP文件。
的index.php和data.php
我想打电话的index.php当请求是domain.com/和data.php当请求的是domain.com/(anything)。
要的index.php重新路由...
if (!empty($_GET['chn'])) {
require('data.php');
exit();
}
data.php已经将有$ _GET [ 'CHN']提供给它。
,或者如果你不排队过一个GET变量,然后你可以检查REQUEST_URI和做同样的事情:
if (@$_SERVER['REQUEST_URI']!='/')) {
require('data.php');
exit();
}
RewriteEngine On
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^/(\d+)*$ ./data.php?chn=$1
试试这个。
注:当您需要的情况下使用的.htaccess,将/
域名后会触发第二重写规则的情况下,这意味着用户将尝试打开字面上domain.com/data.php?chn=
。
它的工作!谢谢 –
你需要你的正则表达式模式从改变到(+),以避免重写您的主页,否则为/也将被改写为data.php请求(*):
试试这个规则:
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]
你在哪里主持?他们是否允许.htaccess覆盖? – WEBjuju
web apache2 sir –
澄清,您托管公司的名称是什么?或者如果你是自己托管,你可以验证你有允许覆盖所有http://stackoverflow.com/questions/18740419/how-to-set-allowoverride-all – WEBjuju