【问题标题】:PHP Custom URL SlugPHP 自定义 URL Slug
【发布时间】:2017-06-16 05:55:34
【问题描述】:

我有一个主要由数据库驱动的网站,其中有几个页面是硬编码的 html 文件(联系人和地图)。所有其他页面都存储在数据库中。

如何设置我的 htaccess 以允许用户执行此操作,同时根本不更改 url?

www.website.com/contact (-实际上加载了contact.html页面)

www.website.com/about (-实际加载 about.html 页面)

www.website.com/anything (-实际加载 page.php?title=anything)

编辑:我更新的代码

RewriteEngine on
# RewriteBase /mcw/
 # i've tried with and without rewritebase

RewriteRule ^(contact|about|index)$ /$1.html
RewriteCond %{REQUEST_URI} !^/(?:contact|about|index)\.html$
RewriteCond %{REQUEST_URI} !^/(?:admins|css|fonts|img|inc|js)/
RewriteRule ^(.*)$ /page.php?name=$1 

【问题讨论】:

  • RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] RewriteRule ^([^\.]+)$ $1. html [NC,L]
  • 你在用路由器吗?

标签: php .htaccess mod-rewrite


【解决方案1】:

你可以这样做:

RewriteRule ^(contact|about)$ /$1.html
RewriteCond %{REQUEST_URI} !^/(?:contact|about)\.html$
RewriteCond %{REQUEST_URI} !^/(?:page\.php|images|scripts|css)/
RewriteRule ^(.*)$ /page.php?title=$1 

我假设您也有不想重写的图像、css 等,因此例如我排除了/images/scripts/css 目录。您需要进行修改以满足您的需要,或者如果不需要,请删除该行。

【讨论】:

  • 看起来应该可以了!我在文件夹方面对其进行了一点修改,并添加了 index.html,它给了我一个 404。请注意,我在开发服务器上的一个名为“mcw”的文件夹中拥有这个站点,该文件夹会生成一个区别?
  • 请将您修改后的代码发布到您的帖子的更新中,并让我知道是什么导致了 404。可能是您的设置未处理 .htaccess 文件,这意味着添加 @ 987654326@ 到主配置中的<Directory>。您可以通过在.htaccess 的一行中添加类似“blahblahblah”的内容来测试它,并查看您的站点是否出现服务器错误。如果不是,则不会处理 .htaccess 文件。将规则放在主配置中实际上更好,但需要对其进行一些细微的修改。
  • 我更新了我的代码。是的,只要仔细检查一下,htaccess 就可以正常处理了
  • 代码看起来不错。什么是 404?
  • 我真的不知道。我尝试 /index.html、/something 或将其留空都没有关系。一切都在触发 404。我现在正在搞砸它,但我没有任何运气
猜你喜欢
  • 2020-10-02
  • 2019-08-01
  • 2020-02-15
  • 1970-01-01
  • 2013-04-23
  • 2017-02-28
  • 2017-03-30
  • 2015-04-18
  • 2020-11-04
相关资源
最近更新 更多