2017-04-05 133 views
-1

有一些問題了解.htaccess文件並使其正常工作。 .htaccess被識別....我在頂部輸入了簡單的測試,並得到了內部服務器錯誤。它似乎mod重寫工作...因爲我下載了一個測試php文件,它的工作原理。Apache 2.4 .htaccess友好URL重寫

我使用Apache 2.4.23沒有PHP頁面

但是我似乎無法得到這個工作的權利。

我想借此網址

http://example.com/ProjectTest/index.shtml?dynContent=Content1 

並重寫它像這樣

http://example.com/ProjectTest/Content1 

我也想這樣做一般整個網站自?dynContent =什麼將是一個常數.....並試圖保持相同的路徑.....如下面的示例

更改此信息

http://example.com/ProjectTest/ProjectFolder/index.shtml?dynContent=Content1 

這個

http://example.com/ProjectTest/ProjectFolder/Content1 

我不是很擅長用.htaccess文件

UPDATE:好吧...我得到這個工作.....不知道爲什麼它....但是當我輸入test-dev/ProjectTest/apples或者test-dev/ProjectTest/oranges時,它會調用相應的內容。

這是我用來

RewriteRule ^ProjectTest/([^/\.]+)/?$ ProjectTest/index.shtml?dynContent=$1 [L] 

,然後我重寫它是這個,現在它適用於任何目錄

RewriteRule ^(.*)/([^/\.]+)/?$ $1/index.shtml?dynContent=$2 [L] 

回答

0

試試這個:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^dynContent=(.+)$ 
RewriteRule ^/(.+)+/index.shtml $1/%1 [PT] 

這需要mod_rewrite被激活。 dynContent=(.+)中括號的值存儲在%1中,而^/(.+)+/index.shtml中的括號值存儲在$1中。這兩個在一起創建您的目標路徑http://example.com/ProjectTest/ProjectFolder/Content1

+0

我糾正了index.shtml拼寫錯誤,並嘗試過它並沒有爲我工作....我也創建一個phpinfo頁面,並檢查加載和mod_rewrite加載模塊。 ..以下是來自phpinfo頁面的信息。 – SteveL

+0

服務器根\t d:/wamp64/bin/apache/apache2.4.23 加載的模塊\t核心mod_win32 mpm_winnt http_core mod_so mod_access_compat mod_actions mod_alias中mod_allowmethods mod_asis mod_auth_basic mod_auth_digest的mod_authn_core mod_authn_file模塊mod_authz_core mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cache的mod_cache_disk mod_cgi一樣mod_dir mod_env mod_file_cache提供mod_headers中mod_include負責mod_isapi mod_log_config mod_mime mod_negotiation mod_rewrite mod_setenvif mod_userdir mod_vhost_alias mod_php5 – SteveL

+0

究竟出了什麼問題?錯誤信息?日誌條目?有什麼合作?因爲規則本身應該是正確的:/ –