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