我很難開始使用mod_rewrite。我一直在這裏約一小時谷歌搜索的東西,但似乎沒有任何工作。我想要做的就是改變
example.com/species.php到example.com/species
也
example.com/species.php?name=frog到example.com/species/frog。Mod_Rewrite到/子目錄和/子目錄/查詢
使用
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^species/(.*)$ /species.php?name=$1
我能得到example.com/species.php?name=frog顯示爲example.com/species/frog,並與
RewriteRule ^species/ /species.php
我可以得到例如.com/species.php顯示爲example.com/species/,但我無法讓他們兩人同時工作。
此外,沒有結尾斜槓的example.com/species總是以404的形式出現。
我認爲只是讓一個/種類/目錄來解決任何問題,但我寧願只有一個物種的一些規則.php文件。任何幫助將很樂意被讚賞!
編輯(因爲我不能回答我自己8個多小時的問題):
我似乎有固定我的兩個問題。我改變了我的.htaccess到:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^species/(.*)$ /species.php?name=$1
RewriteRule ^species/?$ /species.php
第二重寫規則成功地重定向example.com/species,同時使其他重寫規則,同時努力example.com/species.php。
但是,如果我在example.com/species/中輸入了斜線,則它將被讀爲example.com/species.php?name=,並且會因爲沒有提交名稱而引發錯誤,所以我只是添加了
if(isset($_GET['name']) && empty($_GET['name'])) {header('location: http://example.com/species');}
因此,如果我使用example.com/species/,它會重定向到/物種並按需要工作。