【发布时间】:2011-10-17 20:01:46
【问题描述】:
首先,我是 PHP 和 .htaccess 的初学者。这是我的困境...
我已经构建了动态页面并使用 htaccess 重写了 url。页面有 3 种类型...示例:
状态:example.com/massachusetts-colleges.html
城市:example.com/massachusetts-colleges/boston-ma-colleges.html
学院:example.com/massachusetts-colleges/boston-ma-colleges/harvard.html
问题是请求的页面(可能来自旧的链接结构)不应该存在,例如:
example.com/boston-ma-colleges.html
州网址存储在数据库中的位置表中 (stateSlug = massachusetts-colleges)。城市 url 也存储在数据库的位置表中,相应的州信息也与该城市一起存储(citySlug = boston-ma-colleges 和 stateSlug = massachusetts-colleges)。学院存储在不同的表中,并使用 ID 与城市相对应。
如何使用 .htaccess 防止任何“其他”网址被访问(页面显示模板且无数据),并显示 404 页面(或重定向到主页)?
这就是我的 .htaccess 文件现在的样子:
RewriteEngine on
RewriteRule ^([^/\.]+)\.html?$ php/statePage.php?stateSlug=$1 [L]
RewriteRule ^([^/\.]+)-colleges/([^/\.]+)\.html?$ php/cityPage.php?citySlug=$2&stateSlug=$1 [L]
RewriteRule ^([^/\.]+)-colleges/([^/\.]+)/([^/\.]+)\.html?$ php/collegePage.php?collegeSlug=$3&citySlug=$2&stateSlug=$1 [L]
再次,我对 htaccess 和 php 语言有些陌生。在这件事上我将不胜感激。
谢谢!
【问题讨论】:
标签: php mysql .htaccess mod-rewrite