我在我的.htaccess網址重寫中遇到了一些問題。他們在當地很好地工作,但出於某種原因,我不明白,他們不在我的服務器上工作。我能夠像這樣在index.php後加上問號,使我的第一個規則的工作(我也弄不明白爲什麼需要這個問號):我的服務器上的網址重寫不起作用
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index\.php?/$1 [L]
,但我仍然無法找到一種方法讓這個規則在我的服務器上工作。
RewriteRule article/([a-zA-z0-9\-]+)-([0-9]+)/ article/$1/$2/ [L]
你能告訴我我做錯了什麼,爲什麼它在本地工作,但不在我的服務器上?謝謝 !!
謝謝,我已經試過,並且我得到/ article/lala/00000000164 /在這臺服務器上找不到。所以我試過:article /([a-zA-z0-9 \ - ] +) - ([0-9] +)/ index.php?/ article/$ 1/$ 2/[L]。現在我被重定向到index.php,但重寫不起作用。 $ _SERVER ['REQUEST_URI']表示url是/ article/lala-00000000164 /而不是/ article/lala/00000000164/ – user2588917
@ user2588917你想讓它重定向瀏覽器還是什麼?因爲$ _SERVER ['REQUEST_URI']'是瀏覽器請求的內容,而不是** mod_rewrite改變它的內容。 –
嗨,是的,我想我明白我要去哪裏錯了。我在本地使用$ _SERVER ['PATH_INFO']。但是這個變量沒有在我的服務器上設置。所以我用$ _SERVER ['REQUEST_URI']替換它,這就是問題的來源。使用$ _SERVER ['PATH_INFO'],像這樣的URL:/ article/lala-00000000164 /被轉換爲/ article/lala/00000000164 /,所以我可以輕鬆解析它。但$ _SERVER ['REQUEST_URI']中的網址沒有被轉換...是否有任何我可以得到這個以我喜歡的方式工作? – user2588917