[英]apache .htacces - rewrite to url
我正在簡單的php站點上工作,該站點具有兩個子站點:leasing.php和article.php。
我想讓用戶看到這樣的子站點:
http:// domain / leasing (顯示leasing.php)-正常工作
http:// domain / leasing / article-name (顯示article.php?alias = $ variable)-這不是
我的.htacces文件:
RewriteEngine on
RewriteRule ^(/$|$) index.php [NC,L]
RewriteRule ^leasing leasing.php [NC,L]
RewriteRule ^leasing/([A-Za-z0-9-]+)/?$ article.php?alias=$1 [NC,L]
如何更改RewriteRules以在瀏覽器中查看article.php頁面?
嘗試
RewriteEngine on
RewriteRule ^leasing$ leasing.php [NC,END]
RewriteRule ^leasing/(.*)/?$ article.php?alias=$1 [NC,END]
之所以遇到麻煩,是因為因為這兩個規則都與路徑/leasing/article-name
匹配,並且因為url重寫是按照先到先得的原則進行的,所以解析器甚至從未查看您的最后一條規則。
解決方法是更改第一個規則,以便盡管它匹配/leasing
,但不再匹配/leasing/article-name
。 最簡單的方法是在租賃后立即以$
結束模式。 之后的任何路徑都將不再匹配第一個規則。
我使用的標志與您的標志略有不同。 你有L
,我用END
。 區別是細微的,但是基本上,如果您知道這是此路徑(最終目標)所需的最后重寫,請使用END
。
看一下leasing.php的ruirte規則:
RewriteRule ^leasing leasing.php [NC,L]
條件是^leasing
,意思是“ 一切以leasing
開頭 ”。 這也匹配leasing/article-name
URL。
添加$
(代表字符串的結尾 )標志的結束條件表達式( ^leasing$
),使其只匹配准確leasing
網址,而不是別人。
RewriteRule ^leasing$ leasing.php [NC,L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.