[英]Issue with htaccess
我制作了一个具有内置TPL系统的PHP框架。 它获取URL的结尾,并找到具有该字符串的文件。 因此,如果url为http://website.com/tagHere
则Tpl系统将查找名为tagHere.php
的文件。 一切都可以正常工作,但是我现在正在尝试扩展框架以具有内置的后端面板。 我已经尝试了多种方法,但是它只是拒绝工作。
我决定看看Wordpress的htaccess,因为它们正是我要完成的工作。 这是他们的htaccess的工作方式。
他们检查请求的文件名是否是文件。 如果不是文件,那么他们将检查它是否是文件夹。 如果不是文件夹,他们将重定向到index.php。 我希望它检查它是否是文件/文件夹,以及是否不从URL中删除.php标记,因此TPL系统可以获取指定的文件并将其返回。
这是我原始的.htaccess文件。
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1`
这是Wordpress的原始.htaccess文件。
<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>
这是我的尝试:
<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1
</ifmodule>
当我尝试上述htaccess时,它返回404错误。
规则
RewriteRule . /index.php [L]
将始终匹配每个URL,因为它会显示类似“如果URL中包含字符,然后重定向”之类的内容。
您正在寻找的是这样的:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/(.*?)$ admin.php?location=$1 [L]
RewriteRule ^(|/)$ index.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)(|/)$ index.php?url=$1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.