2013-10-19 75 views
0

在我的.htaccess頁面():htaccess的URL rewite如何避免重寫點我有以下

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^mydomainname.com$ [NC] 
RewriteRule ^(.*)$ http://mydomainname.com/$1 [R=301,L] 
RewriteRule ^([A-Za-z0-9\ -]+)$ index.php?x=$1 [L] 

它所做的是改寫mydomainname.com/page-name到mydomainname.com/index.php ?x =頁面名稱

我的問題是我希望能夠訪問像mydomainname.com/testpage.php這樣的頁面而不需要激活規則。我不明白爲什麼它仍然加載索引頁,當我沒有在RewriteRule中的點。

回答

0

基本上你告訴一切去index.php文件這在短期是:

RewriteRule . index.php [L] 

嘗試了這一點,讓我們看看會發生什麼:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^mydomainname.com$ [NC] 
RewriteRule ^(.*)$ http://mydomainname.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^([A-Za-z0-9\ -]+)$ index.php?x=$1 [L,QSA] 
+0

你能說明什麼不同線路做?我想學習。 – Paul

+0

@Paul看看['RewriteCond Directive'](http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond) – tttony

+0

OP的正則表達式是'^([A-Za-z0-9 \ - ] +)$'不管怎樣都與點不匹配。 – anubhava