這是我的.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