簡體   English   中英

.htaccess用於扁平鏈接的RewriteRule

[英].htaccess RewriteRule for Flat Links

我對使用RewriteRule很新,所以我可能會遺漏一些明顯的東西,但我有一個PHP腳本,它采用如下的URL變量:

{baseurl}properties.php?prop=Property-Name

我想創建RewriteRules,以便任何輸入此腳本名稱/變量組合的人都會將其URL重寫為:

{baseurl}/properties/Property-Name

除了確保輸入flat-link url的任何人,實際上使用正確的變量名稱和值調用腳本。

我一直在指這個鏈接 ,我找到了相關的主題:

Mod_rewrite扁平鏈接

Mod_rewrite麻煩:想要從?=指向扁平鏈接,似乎沒什么用

但是,我顯然做錯了,因為我無法讓這個URL按照我想要的方式工作。 我目前正在使用以下代碼,它似乎什么都不做(除了重寫URL以包含www,並將index.php的請求重定向到站點根目錄):

RewriteEngine ON
RewriteCond %{HTTP_HOST} ^baseurl.com$ [NC]
RewriteRule ^(.*)$ http://www.baseurl.com/$1 [R=301,L]
RewriteRule ^index.php / [R=301,L]
RewriteRule ^properties/([0-9A-Za-z]+)/$ /properties.php?prop=$1

問題顯然是最后的RewriteRule,假設上面沒有任何影響它。 再說一遍,我可能會做一些荒謬的事情。 有人可以解釋一下我做錯了什么嗎?

謝謝你的幫助。

快速瀏覽一下,您似乎忘記在正則表達式中包含短划線,並且包含尾部斜杠。 請改用:

RewriteRule ^properties/([0-9A-Za-z-]+)$ /properties.php?prop=$1

如果你查看你的規則^properties/([0-9A-Za-z]+)/$你會發現它需要以正斜杠結束。 您可以刪除它或使其可選,如^properties/([0-9A-Za-z]+)/?$

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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