簡體   English   中英

mod_rewrite刪除查詢字符串並替換為“文件夾”名稱

[英]mod_rewrite to remove query string and replace with 'folder' names

所以我已經有一些重寫了,但是實際上我沒有寫它們:(我很想理解它們,而不是僅僅尋求幫助。但是我對它們一無所知,而且我不覺得我有時間在花時間學習時間:(

反正我想轉

http://wouldyourathers.co.uk/?qid=1231

變成:

http://wouldyourathers.co.uk/question/1231

對我來說,qid相當丑陋。 可以說我可以輕松地將其更改為“問題”,但我仍然覺得它不漂亮。

唯一的問題是我已經使用以下方法進行了重寫:

RewriteCond %{REQUEST_URI} !dispatch\.php$
RewriteCond /var/www/wyr/docroot%{REQUEST_FILENAME} !-f
RewriteRule ^(/.*)$ /dispatch.php?url=$1 [L,QSA]
RewriteRule ^x\.!dispatch\.php([^b]+)!dispatch\.php$ !dispatch\.php [L,NE]

這會將來自我的服務器的任何請求指向我的dispatch.php,在這里,我基本上搞亂了url,以一種性感的方式顯示它們。 但是我很困惑如何編輯查詢。 進入調度文件后,我可以對其進行編輯,並執行執行數據調用所需的代碼。

謝謝(即使這比需要的時間更長)

在其他規則之前,您可以嘗試添加以下內容:

RewriteRule ^/question/([0-9]+)$ /?qid=$1 [L,QSA]

現在,轉到http://wouldyourathers.co.uk/question/1231時,您的規則沒有任何更改,您應該在dispatch.php腳本的$_GET['url']中擁有/question/1231

您可以使用PHP解析該網址並恢復您的問題ID:

$parts = explode('/', $_GET['url');
if ($parts[1] == 'question') {
    $question_id = $parts[2];
    // you could even do $_GET['qid'] = $parts[2];
}

暫無
暫無

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

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