簡體   English   中英

偽目錄的Mod重寫Htaccess

[英]Mod Rewrite Htaccess for Fake Directories

我正在嘗試創建偽目錄以將特定參數重定向到特定子目錄,例如:

From: www.example.com/username
  To: www.example.com/posts?uid=alex

From: www.example.com/p/1234
  To: www.example.com/posts?url=1234

從其余問題來看,這是一個更為復雜的示例,其中關於stackoverflow的主題相同,並且大多數答案都沒有給出有關其工作原理的解釋,因此我無法就如何解決此問題得出結論。

嘗試:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^p/([^/]+)$ /posts?url=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /posts?uid=$1 [L]

首先,您需要使所有鏈接看起來像這樣:

www.example.com/username
www.example.com/p/1234

上面的重寫規則將匹配/p/1234 (通過^p/([^/]+)$ )和/username (通過^([^/]+)$ ),並在內部將它們重寫為/posts URI。 請注意,這不會更改瀏覽器位置欄中的URL,因為這是外部重定向。 如果有人輸入www.example.com/posts?uid=alex ,則URL將保持不變。

通過httpd.conf啟用mod_rewrite.htaccess ,然后將此代碼放入DOCUMENT_ROOT/.htaccess文件中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^p/([^/]+)/?$ /posts?url=$1 [L,QSA,NC]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /posts?uid=$1 [L,QSA,NC]

暫無
暫無

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

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