簡體   English   中英

htaccess僅顯示url的最后部分和尾部斜杠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM