2011-06-08 128 views
0

我試圖將一個子目錄轉換爲在查詢中使用的變量。Apache Mod_Rewrite幫助

例如

域/子目錄/ STRING(需要 「STRING」 子目錄)

轉換爲:

域/子目錄/ index.php的Q = STRING

所有I」?得到的是內部服務器錯誤和404的和phpinfo()出於某種奇怪的原因。

P.S.

嘗試這個頁面已經在信息:http://corz.org/serv/tricks/htaccess2.php

編輯:

這似乎是工作。 RewriteRule ^([a-zA-Z0-9] +)$ index.php?qst = $ 1

但它限制匹配AlphaNum字符,我想包括, - ,_和#如果它是可能。

回答

0
RewriteRule ^subdir/index\.php(.*) - [L] 
RewriteRule ^subdir/(.*)$ /subdir/index.php?q=$1 [L] 
+0

這給了我404。 – petsoukos 2011-06-08 13:19:48

+0

這個規則假定任何對domain/subdir/STRING的請求都是從domain/subdir/index.php?q = STRING提供的。你必須確保在domain/subdir /目錄中有index.php。同時檢查Apache的錯誤日誌,看看它試圖獲得什麼資源。 – 2011-06-08 13:27:22

+0

index.php位於子目錄中。 [Wed Jun 08 16:31:28 2011] [error] [client 127.0.0.1]文件不存在:C:/ Program Files(x86)/ Apache Software Foundation/Apache2.2/htdocs/subdir/string – petsoukos 2011-06-08 13:36:12

0
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^subdir/(.*)$ /subdir/index.php?q=$1 

RewriteCond檢查請求的文檔不存在的文件,這樣,我們沒有得到一個遞歸調用的index.php文件

下一條規則是一種常見的重寫請求/subdir/index.php

+0

對不起,這也沒有奏效。我可能在服務器配置方面有問題。我用一些簡單的東西測試了重寫,比如將subdir/index.htm轉換爲subdir/index.php並且工作正常。我不知道爲什麼不這樣做。 – petsoukos 2011-06-08 14:16:54