我已經搜索了一段時間,無法找到解決方案,我的問題,也許我只是沒有尋找正確的事情,但無論如何,這是發生了什麼事。.htaccess重寫問題沒有斜槓
我在我的.htaccess文件中有以下mod_rewrites。重寫可以很好地工作,但如果我沒有結尾的斜槓,那麼它會在URL中自動顯示一個變量。請看下面的例子以獲得清晰的理解。
URL樣本
如果我進入http://website.com/test/
,(注意尾隨斜線)頁面的URL將保持完全相同的,完美加載內容!
但是,如果我忘記了斜線,即:http://website.com/test
,那麼頁面URL將更改爲http://website.com/test/?var1=test
。 (現在注意到我已經忽略了斜線),內容仍然正確加載,並且一切正常,只是我的URL現在是「醜陋的」。
我希望我明確這一點,但如果您有任何問題,請隨時詢問。謝謝!
的.htaccess代碼
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3&var4=$4&var5=$5 [L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3&var4=$4 [L]
RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^([\w-]+)/([\w-]+)/?$ _client.php?var1=$1&var2=$2 [L]
RewriteRule ^([\w-]+)/?$ _client.php?var1=$1 [L]
它看起來像問題是不相關的部分'.htaccess'你顯示。這些規則都沒有簡單的'?var1 ='重定向,只有前面有'_client.php',它不在最終的URL中。在服務器配置中檢查網站根目錄或規則的'.htaccess'中的規則。 – Cheery 2014-10-18 04:38:05
我不認爲我很理解。這個.htaccess在我的根目錄中,下面是我用來獲取變量的PHP。 '<?php $ clientURL = str_replace(「/」,「」,$ _REQUEST [「var1」]); $ seriesSet = str_replace(「/」,「」,$ _REQUEST [「var2」]); $ sermonSet = str_replace(「/」,「」,$ _REQUEST [「var3」]); $ serviceSet = str_replace(「/」,「」,$ _REQUEST [「var4」]); ?>' – 2014-10-18 04:48:59
你在'_client.php'中做了什麼?它可以做這個重定向嗎?我只是寫了非規則重定向到'?var1 = ...',只有'_client.php'和'_client.php'不在URL中。正如我想的那樣,發生了一些事情,但在上市規則中。 – Cheery 2014-10-18 04:51:58