我已經創建了一個規則,允許用戶傳遞這樣一個變量的主頁網址傳遞變量:somepage.com/database/12345在內部它更改爲somepage.com/database/ ?db_index = 12345它工作正常。代碼如下所示:mod_rewrite的 - 直接從不工作
RewriteBase/
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1
現在我需要做的完全一樣,但不需要在變量前面傳遞「database /」。所以用戶可以像這樣傳遞變量:somepage.com/12345。它必須是一個附加選項,而不是前一個的替代品。我試圖這樣做:
RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]
但我只是不能得到這個工作,我不知道爲什麼。上面的附加代碼直接插入到上一個工作規則之前。
如果我的方法不起作用,我會很樂意爲您提供幫助和解釋。
UPDATE:整個.htaccess文件看起來是這樣的:
# Block the include-only files.
RewriteEngine On
RewriteBase/
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
# direct url rewrite
RewriteEngine On
RewriteBase/
RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
奇怪,這應該工作。你得到的錯誤是什麼? – kapa 2012-07-06 13:00:22
Yeap,努力看到這個問題 – Utkanos 2012-07-06 13:01:32
我得到#404,所以顯示結果的模板頁面甚至沒有加載。我正在粘貼.htaccess文件的全部內容 - 可能在其他地方存在問題? – NoviQ 2012-07-06 13:08:13