[英]htaccess to display only the last part of the url and trailing slash
我們使用以下兩行
RewriteRule (.+?)/(.+?)\.php http://%{HTTP_HOST}/$2.php [L,R=301]
RewriteRule (.+?)/(.+?)\.html http://%{HTTP_HOST}/$2.html? [L,R=301]
這是將一些錯誤的URL重定向為
www.site.com/something/page.php
www.site.com/something/page.php?a=b
www.site.com/something/page.html
作為一個測試,它似乎可以正常工作,但是我在分析中遇到了一些錯誤,其中對於某些網址,它顯示了類似/?a = b的名稱。 不知何時會出現。
其次,我有現有的文件夾,例如admin / login.php。 當我使用上面的代碼時,顯然此URL被重定向為我不想要的login.php。 有沒有辦法對3個文件夾admin,t4,t5進行雙向傳遞。 我迫切需要糾正索引問題。 能否請你幫忙..
我也需要對第二個重寫語句進行類似的調整
您可以使用以下代碼:
RewriteEngine On
# skip these 3 folders
RewriteRule ^(admin|t4|t5)(/|$) - [L,NC]
# existing rules
RewriteRule (.+?)/(.+?)\.php /$2.php [L,R=301]
RewriteRule (.+?)/(.+?)\.html /$2.html? [L,R=301]
# redirect /?a=b to /
RewriteCond %{QUERY_STRING} .+
RewriteRule ^$ /? [L,R=301]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.