我用PHP和MySQL制作了一个网站。如果文件夹名称是' blog'在公共目录中使用' index.php'在其中,然后链接' website.com/blog /'工作得很好。现在的问题是,如果我删除最后一个斜杠(/),或者用大写字母写任何字母(如Blog,bloG,BLog等),那么它将把观众带到其他地方。有解决方案吗它看起来很简单,但却无法做到。可能与PHP字符串函数有关。
答案 0 :(得分:0)
在linux中[[A]和[a]两者都不同,所以当你指向/博客这个你创建的文件夹时,但当你指向/ Blog这个文件夹不存在时。
您可以使用apache或nginx执行这些操作,但子URL不是父文件夹。
答案 1 :(得分:0)
如果你正在使用Apache,这是一个简单的3步解决方案:
.htaccess
重写从浏览器到小写的所有网址第一步很简单;只需将Blog
重命名为blog
等...
第二步是在您的网站Virtualhost
部分的httpd-vhosts.conf
部分中完成,其中Apache允许您定义网站。在该部分中,您将添加小写地图:
<强>的httpd-vhosts.conf 强>
<VirtualHost *:80>
ServerName yourwebsite.com
RewriteEngine on
RewriteMap lowercase int:tolower
现在我们已经定义了一个名为lowercase
的地图,该地图使用了Apache的内部tolower
地图,我们可以在.htaccess
文件中使用它来重写任何网址包含一个小写的大写字母。按该名称创建文件并将其放在网站的顶级公共目录中 - 通常为public_html
或www
。在此文件中,添加以下规则:
<强>的.htaccess 强>
RewriteEngine on
# Rule below must be above all other rewrite rules
# It says: if path has uppercase, rewrite to lowercase
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) ${lowercase:$1} [R=301,L]
现在,您的所有路径都是小写的(步骤1),如果用户尝试转到/BLOG
,而是将她带到其他地方,服务器将重定向到/blog
答案 2 :(得分:-2)
linux服务器区分大小写,因此请重命名您的文件夹,因为这是您的路径,然后解决您的问题