簡體   English   中英

apache .htacces-重寫為url

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

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