我正在创建分类广告网站。
该网站具有按位置过滤的搜索功能。
目前我只是使用 php GET 函数通过 url 发送位置并在搜索数据库之前检索它。
我希望能够将该位置作为域的子文件夹出现。
如果不为每个位置上传物理子文件夹和 index.php 文件,这可能吗?
请就实现这一目标的最佳选择提出建议。
我正在创建分类广告网站。
该网站具有按位置过滤的搜索功能。
目前我只是使用 php GET 函数通过 url 发送位置并在搜索数据库之前检索它。
我希望能够将该位置作为域的子文件夹出现。
如果不为每个位置上传物理子文件夹和 index.php 文件,这可能吗?
请就实现这一目标的最佳选择提出建议。
是的,有可能。试试 apache mod_rewrite:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
打开它,然后在 .htaccess 文件中(必须与您的 index.php 相同的文件夹):
RewriteEngine on
RewriteBase / # or the subfolder where your index.php is inside the domain
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?location=$1
还有一个 index.php 的例子:
<?php
print $_GET['location'];
?>
这可能会对您有所帮助。
谢谢你的帮助科夫格。
在接受您的回答并进行进一步研究后,我创建了一个完全符合我要求的 RewriteRule。
由于这些位置的结构具有多个级别(对于州、地区、城市、郊区等),所以我已经做到了,所以无论 URL 有多少子文件夹,返回只会是最终的子文件夹(没有尾部斜杠)。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*/)?(.*[^/])/?$ /index.php?location=$2