2015-05-01 77 views
0

我試圖重寫某個php文件的url。在wamp服務器上使用.htaccess進行url重寫時遇到問題

目標爲網址:www.mysite.com/filename/topic/www.mysite.com/filename/topic

什麼工作:www.mysite.com/filenamewww.mysite.com/topic

我已經嘗試了所有的重寫規則我知道這應該工作,但每次我的話題添加到URL我結束了一個500 internal server error

當前.htacces文件

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
RewriteEngine On 

//No need for php extension 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

//Rewriting the url 
RewriteRule ^([a-zA-Z0-9_-]+)$ filename.php?topic=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ filename.php?topic=$1 

回答

0

您有衝突的規則,並且可能存在與MultiViews進行內容協商的問題。此外,您並未使用所有標誌([L])來防止規則匹配的繼續。

你不能用第二組規則這樣做,並且不需要2條規則只是爲了得到/。你可以讓它成爲可選的。你需要做這樣的事情。

<IfModule mod_rewrite.c> 
Options +FollowSymLinks -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/?$ $1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?topic=$2 [L] 

</IfModule> 
+0

對不起,花了這麼長的時間來回答。它有點工作,只有問題,我最終是因爲我的css/jquery沒有正確加載時加入.com /文件名/主題。即使我從根抓起。 '/ CSS/style.css' –