我正在创建一个包含多变主题的简单php网站。我有一个名为 MyThemes 的目录,其中包含以下文件夹 header.php , sidebar.php , page.php < / strong>, footer.php 现在问题是我想使用所选主题的page.php文件显示数据库中的页面,但生成的链接将类似于
website/MyThemes/ThemeName/page.php?id=somePageID
我想在可能的情况下将其更改为
website/pages/somePageID
我对PHP有一点经验,但显然还不够。所以任何帮助都将不胜感激。
答案 0 :(得分:2)
这通常通过网络服务器的URL重写来完成:服务器确保将/url/like/this
转换为(例如)something.php?like=this
。之后,应用程序没有任何区别。 Apache使用mod_rewrite来执行此操作。如果您使用的是Django,则会在urls.py
文件中配置。
您仍然可以通过记住Cookie或会话变量中的主题来简化您的网址website/pages.php?id=n
。
此外,您当前的文件路径建议您复制不同主题的页面:这绝不是一个好主意。不要重复自己!
答案 1 :(得分:1)
您可以使用友好的网址和正则表达式:
见
http://www.phpriot.com/articles/search-engine-urls
在本文中,您将找到有关使用htaccess的说明:
示例:
<IfModule mod_rewrite.c>
RewriteEngine on
#rule not apply directories
RewriteCond %{REQUEST_FILENAME} !-d
#rule not apply files
RewriteCond %{REQUEST_FILENAME} !-f
#Rule to page
RewriteRule ^page/$ page.php
RewriteRule ^page$ page.php
RewriteRule ^page/(.*)/(.*)?$ page.php?id=$1&des=$2
RewriteRule ^page/(.*)?$ page.php?id=$1
</IfModule>