簡體   English   中英

.htaccess重寫程序和偽目錄

[英].htaccess rewriterule and fake directories

我正在嘗試用Apache和PHP重寫一些URL。 這是出於SEO的原因,因此foo.com/product-category/product-title變為foo.com/product.php?id=999。 我當然希望URL保持不變並成為SEO友好版本。

我有一個當前站點,該站點具有可以正常使用的設置,但它實際上是一個hack,而不是可維護的解決方案,因此,我試圖做正確的事情!

目前,我有:

RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/?($) /url_redirect.php?page=$1 [QSA,L]

效果很好, http://foo.com/random-url ?foo = 1&bar = 2最終以$ _GET ['page'] ='random-url'和$ _GET ['foo']結尾於/url_redirect.php = 1等。

如果您更深一層,我希望發生完全相同的事情(例如http://foo.com/non-existing-directory/random-url?foo=1&bar=2

可以將不存在的目錄創建為真實目錄,然后從該目錄中創建.htaccess,但必須有一種簡便的方法。.我希望我不必對任何目錄名稱進行硬編碼(這是我當前解決方案的工作方式)。

我認為這個問題可能與正則表達式不對,他們總是打敗我。

我只是嘗試過,雖然可能不是實現它的最佳方法(我不是重寫大師)

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/([a-zA-Z0-9_\ \-\%]+)?($) url_redirect.php?page=$2 [QSA,L]
RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/?($) url_redirect.php?page=$1 [QSA,L]

抱歉,這是我的本地設置,這就是我認為您想要的方式!

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/([a-zA-Z0-9_\ \-\%]+)?($) /url_redirect.php?page=$2 [QSA,L]
RewriteRule ^([a-zA-Z0-9_\ \-\%]+)/?($) /url_redirect.php?page=$1 [QSA,L]

注意url_redirect.php之前的/

暫無
暫無

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

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