的一部分,如果我的網址是: http://mywebsite.com/lawyer/my-lawyer-profile
htaccess的:刪除網址
我怎麼會從URL中移除lawyer
所有類似的要求?
RewriteRule ^lawyer/(.+)/$ /$1
似乎並沒有得以順利......當然,我可以訪問網址爲http://mywebsite.com/my-lawyer-profile
,但我需要的URL重寫始終。
的一部分,如果我的網址是: http://mywebsite.com/lawyer/my-lawyer-profile
htaccess的:刪除網址
我怎麼會從URL中移除lawyer
所有類似的要求?
RewriteRule ^lawyer/(.+)/$ /$1
似乎並沒有得以順利......當然,我可以訪問網址爲http://mywebsite.com/my-lawyer-profile
,但我需要的URL重寫始終。
嘗試添加[R=301]
標誌,並擺脫了尾隨斜槓:
RewriteRule ^lawyer/(.+)$ /$1 [R=301,L]
這就所以當有人去:
http://mywebsite.com/lawyer/my-lawyer-profile
瀏覽器被重定向到:
http://mywebsite.com/my-lawyer-profile
您需要確保您在命令末尾具有正確的標誌以激活在客戶端瀏覽器中執行重寫。因此,像這樣:
RewriteRule ^lawyer/(.*)$ /$1 [R=301,L]
這裏R=301
將提供指示使用適當的URL 301 FOUND頭到瀏覽器(以及一個搜索引擎蜘蛛等)。 L
標誌將指示這是要運行的最後一條規則(即重定向現在不會繼續查看.htaccess文件的其餘部分)。
注意我也改變了你的規則,這樣/ lawyer /會重定向到/並且你不需要在URI結尾處有一個尾部的斜線(例如,你可能有查詢字符串的情況)
您的模式缺少前導/
,最後只匹配/
的網址。你可能不希望這樣。
RewriteRule ^/lawyer/(.+)$ /$1 [NE]
(網元標誌可防止應用於%-escaping額外的一層,因爲你寫路部分無法查詢段。)
我需要它自動改變從網址/ lawyer/my-lawyer-profile to/my-lawyer-profile/
如果您想要將瀏覽器中顯示的URL推送到較短的版本:這不是重寫,它是一個純文本舊的重定向。你可以使用R標誌來做重定向(如上所述),但是真的沒有必要走出mod_rewrite的瑞士軍團鏈鋸進行簡單的重定向。
Redirect permanent /lawyer/
@dcolumbus這就是它做什麼。瀏覽器的URL地址欄會顯示「http:// mywebsite.com/my-lawyer-profile」。 –