【发布时间】:2016-02-08 19:00:03
【问题描述】:
我正在尝试在 .htaccess 中使用 mod-rewrite 来实现干净/漂亮的 URL。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ details.php?id=$1 [L,QSA]
RewriteEngine On启动引擎。RewriteCond %{REQUEST_FILENAME} !-f不会重写任何内容,如果 请求文件名存在,并且是一个文件。RewriteCond %{REQUEST_FILENAME} !-d不会重写任何内容,如果 请求文件名存在,并且是一个目录。RewriteRule ^([^/]+)/?$ details.php?id=$1 [L,QSA]这是实际的 重写规则。它需要在域名之后的任何内容(任何内容 除了正斜杠),并将其重写为details.php,通过 它作为id参数。
RewriteRule ^([^/]+)/?$ details.php?id=$1 [L,QSA] 在请求 http://www.domain.com/texas
这很好。 我需要的是我的请求 URL 如下所示: http://www.domain.com/location/texas
而details.php 有以下代码
<?php
$id = $_GET["id"];
echo "new id is ".$id;
?>
问题:我无法编写有效的.htaccessRewriteRule 来识别此请求http://www.domain.com/location/texas。
请帮忙。
我都尝试了什么?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^location/?$ details.php?id=$1 [L,QSA] - 不工作
RewriteRule ^location/[a-z][-a-z0-9]*?$ details.php?id=$1 [L,QSA] - 工作,但id 显示为空白。
【问题讨论】:
标签: apache .htaccess mod-rewrite