[英]mod_rewrite for sub directory
我有一個域和一個子文件夾,稱為“sub”。在“sub”中是 index.php,其中包含:
$page = $_GET['page'];
switch ($page)
{
case "main":
echo "main";
break;
case "task_orders":
echo "task_orders";
break;
case "team_members":
echo "team_members";
break;
case "team_experience":
echo "team_experience";
break;
case "quality_assurance":
echo "quality_assurance";
break;
case "geographical_support":
echo "geographical_support";
break;
case "contact":
echo "contact";
break;
default:
echo "main";
}
我在“sub”中的 htaccess 是:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^sub/([^/\.]+)/?$ index.php?page=$1 [L]
當我點擊一個看起來像這樣的鏈接時:
<li><a href="/sub/main" title="Main" class="current">Main</a></li>
<li><a href="/sub/task_orders" title="Task Orders">Task Orders</a></li>
<li><a href="/sub/team_members" title="Team Members">Team Members</a></li>
<li><a href="/sub/team_experience" title="Team Experience">Team Experience</a></li>
<li><a href="/sub/quality_assurance" title="Quality Assurance Program">Quality Assurance</a></li>
<li><a href="/sub/geographical_support" title="Geographical Support">Geographical Support</a></li>
<li><a href="/sub/contact" title="Points of Contact">Points of Contact</a></li>
我沒有找到一個頁面,而不是回顯我所在的頁面,有什么想法嗎?
我也試過:
RewriteRule ^/sub/([^/\.]+)/?$ /sub/index.php?page=$1 [L]
和相同的結果
您快到了。 您不想在編寫RewriteRule
時指定前導/
。
在文檔根目錄中:
RewriteEngine on
RewriteRule ^sub/([^/\.]+)/?$ /sub/index.php?page=$1 [L]
從 /sub 文件夾:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
如果您的 .htaccess 位於子目錄中,則不必在 RewriteRule 中寫入完整路徑。
因此,在子目錄中的 .htaccess 中使用它:
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
或在 root 的 .htaccess 中:
RewriteRule ^sub/([^/\.]+)/?$ sub/index.php?page=$1 [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.