Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP自定义URL段塞_Php_.htaccess_Mod Rewrite - Fatal编程技术网

PHP自定义URL段塞

PHP自定义URL段塞,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我有一个网站,主要是数据库驱动的,有几个页面是硬编码的html文件(联系和地图)。所有其他页面都存储在数据库中 如何设置htaccess以允许用户执行此操作,而不更改url www.website.com/contact (-实际加载contact.html页面) www.website.com/about (-实际加载about.html页面) www.website.com/anything (-实际加载page.php?title=anything) 编辑:我的更新代码 RewriteEn

我有一个网站,主要是数据库驱动的,有几个页面是硬编码的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 

您可以这样做:

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
目录。您需要修改以满足您的需要,如果不需要,也可以删除该行。

您可以这样做:

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
目录。您将需要修改以满足您的需要,或者如果不需要,请删除该行。

RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteRule^([^\.]+)$$1.php[NC,L]RewriteRule^([^\.]+)$$1.html[NC,L]您正在使用路由器吗?RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteRule^([^\.]+)$$1.php[NC,L]RewriteRule^([^\.]+)$$1.html[NC,L]您正在使用路由器吗?看起来应该可以工作了!我对文件夹做了一点修改,添加了index.html,它给了我一个404。请注意,我把这个网站放在一个名为“mcw”的文件夹中,这个文件夹在开发服务器上,会有什么不同吗?请在你的帖子的更新中发布你修改过的代码,并让我知道什么是404。可能是安装程序未处理
.htaccess
文件,这意味着将
AllowOverride all
添加到主配置中的
。您可以通过在
.htaccess
中的一行添加类似“blahblahblah”的内容来测试它,并查看您的站点是否出现服务器错误。如果没有,则不会处理
.htaccess
文件。实际上,最好将规则放在主配置中,但它们需要稍加修改。我更新了代码。是的,只是反复检查,htaccess正在处理中。代码看起来很好。什么是404?我真的不知道。不管我是尝试/index.html、/something还是将其留空。一切都触发了404。我现在正在胡闹,但我没有任何运气,看起来它应该会起作用!我对文件夹做了一点修改,添加了index.html,它给了我一个404。请注意,我把这个网站放在一个名为“mcw”的文件夹中,这个文件夹在开发服务器上,会有什么不同吗?请在你的帖子的更新中发布你修改过的代码,并让我知道什么是404。可能是安装程序未处理
.htaccess
文件,这意味着将
AllowOverride all
添加到主配置中的
。您可以通过在
.htaccess
中的一行添加类似“blahblahblah”的内容来测试它,并查看您的站点是否出现服务器错误。如果没有,则不会处理
.htaccess
文件。实际上,最好将规则放在主配置中,但它们需要稍加修改。我更新了代码。是的,只是反复检查,htaccess正在处理中。代码看起来很好。什么是404?我真的不知道。不管我是尝试/index.html、/something还是将其留空。一切都触发了404。我现在在胡闹,但我一点运气都没有