这是.htaccess文件
RewriteEngine on
RewriteCond $1 !^(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt)
RewriteRule ^(.*)$ /index.html?tpl=$1 [L]
Options +FollowSymlinks
然而,发生的事情是以下所有文件夹都不允许我进入它们并查看PHP文件。
|administrator|system|template|js|lib
我想通过将文件放在RewriteCond
中,它允许用户仍然转到http://example.com/news/happy
,然后转到index.php?tpl = etc等,但它阻止了我进入任何子目录,如
答案 0 :(得分:1)
我不知道这是否适合你。但我所做的是添加此规则以加载对任何.php文件的调用而不使用.php结尾。无论是否结束,你都可以同时打电话。
例如,您可以拨打my_url.com/myfolder/myfile
,然后使用友好的网址加载myfile.php
。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
答案 1 :(得分:0)
我想建议您先阅读mod重写
1 - 将该行放在顶部
Options +FollowSymlinks
该行要求您的服务器遵循符号链接,但我建议您使用更安全的选项" SymLinksIfOwnerMatch"
来源:
http://httpd.apache.org/docs/2.2/mod/core.html#options#FollowSymLinks
RewriteEngine on
启用或禁用运行时重写引擎
来源: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteengine
RewriteCond $1 !^(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt)
你走了。该规则要求Web服务器添加重写条件以忽略正则表达式中列出的所有内容
我也为你添加了正则表达式解释
!
不相等 ^ 从
开始 RewriteRule ^(.*)$ /index.html?tpl=$1 [L]
您要求将所有其他内容写入index.html?tpl = $ 1 **我认为你的意思是index.php我将假设你不需要查询字符串
我想建议使用更好的方法来处理排除
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(index\.html|index.php|administrator|system|template|js|lib|favicon\.ico|robots\.txt)
RewriteRule ^(.*)$ /index.html?tpl=$1 [L]