我希望非IIS的人可以幫助我,雖然我遇到的問題是基於運行ISAPI_Rewriter的IIS6服務器。mod_rewrite在IIS6上使用ISAPI_rewriter問題
情況是,我在IIS6上運行Wordpress,ISAPI_Rewriter被用來作爲mod_rewrite的替代品,並且運行正常。我的問題是,當我得到它重寫我的WordPress的URL(所以我不需要index.php文件名),它顯示了一個404。經過多次搜索,我發現問題是因爲部分ASP.net(或類似的東西)添加eurl.axd/[隨機字符串]到URL的末尾,所以這被送入WordPress的請求並打破它。我設置了WordPress的模板來輸出請求的URL,它看起來是這樣的:
http://www.example.com/index.php/about/eurl.axd/b552863f2d5e9841b5d8b79b44ac02e8/
我相信這是因爲不同的東西在IIS系統啄食順序和需要的罪魁禍首運行另一個項目的一部分。我寧願繼續使用ISAPI_Rewriter來漂亮的URL,所以我想知道這一點:
有沒有任何方式獲取mod_rewrite刪除eurl.axd/[字符串]之前提供給系統?
我的.htaccess文件目前出現這樣的:
RewriteEngine on
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/
RewriteRule ^/(.*)$ /$1 [NC,L]
感謝所有幫助,它總是不勝感激。
編輯:根據建議調整了我的htaccess,它似乎從我進行的簡短測試中工作得很好。已經在下面發佈。
RewriteEngine on
RewriteBase/
# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks
# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]
# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]
真棒,它設置它直!基於這一點對我的htaccess做了一些調整,這很有魅力。謝謝勞倫斯。 – Leonard 2010-11-30 12:18:22