2017-02-12 81 views
1

我有一個名爲URL www.example.com/print?id=adder
我希望它看起來像www.example.com/print/adder.htaccess中的髒網址沒有轉化成乾淨的URL

我使用下面的代碼.htacces

RewriteEngine on 

# redirect all requests except only POST 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC] 
RewriteRule^/%1%2 [R=302,L,NE] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

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

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L] 

但仍然,我有像www.example.com/print?id=adder這樣的網址。我正在使用wamp 3.0.6(Latest Version),PHP 7.0,10 & Apache 2.4.23。爲什麼我面臨這個問題。爲什麼不是代碼工作?

+0

是/打印文件夾htaccess的? – starkeen

+0

不,我的.htaccess位於根文件夾中,並且print不是它的'print.php'文件夾。我已將.php擴展名隱藏起來,因此您可以看到'print?id ='而不是'print.php?id =' –

+0

「但是,我的網址類似於...」 - 您還需要更改你的應用程序中的URL(這實際上是_changes_的URL) - 大概你已經這樣做了? – MrWhite

回答

1

爲了您的網址重定向到清潔的版本,把這個你最後的RewriteRule上述

RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+) 
RewriteRule^/print/%1? [L,R] 
+0

您的代碼更改了URL,但是由於該代碼,它給出了內部服務器錯誤500. –

+0

您的修改代碼未接受@starkeen。它轉換成乾淨的URL,但它顯示相同的500錯誤,內部配置錯誤 –

+0

Akshay,我不認爲你得到這個規則的錯誤。規則是好的我已經在我的服務器上測試過它。請檢查您的錯誤日誌以獲取關於500error的信息。 – starkeen