我很想知道是否有办法让网页被PHP页面或其他服务器端逻辑拦截,以便查询URL“www.mysite.com/about/mission_statement”但我不知道在“about / mission_statement”上有一个页面,我可以提供“some / other / folder / with / pages”中的内容。
有人知道这是否可行,还是我必须确保我有一个页面可用于我希望处理的每个网址?
答案 0 :(得分:6)
您不能直接在PHP中执行此操作,因为调用PHP页面以处理给定的URL,但您可以在Web服务器中执行此操作。
假设Apache看看URL重写
http://httpd.apache.org/docs/2.2/rewrite/
特别是对于你的情况,副主题
http://httpd.apache.org/docs/2.2/rewrite/remapping.html
是相关的。
IIS具有类似的功能。
答案 1 :(得分:2)
再次假设你使用Apache,那么你有很多选择:
对特定页面/内容使用重写规则(如另一个答案中所指定),或在.htaccess文件中包含一行,将任何不存在的请求(404)重定向到您选择的特定位置/文件。
这通常使用docroot目录或其他目录中的.htaccess文件中的以下代码进行调用:
ErrorDocument 404 /whatever/path/to/file.php
如果您使用PHP键入的动态页面,例如ID或其他动态值,则EG:
http://www.somedomain.com/page.php?id=4
然后,如果内容不匹配或存在,您需要创建一个重定向到您选择的页面的函数。