我已经在http://url/sdf19/
构建了一个应用
我在/ sdf19 /中放置了一个.htaccess文件,其中包含RewriteRule以获取干净的URL。
但是我建立了一个PDF生成工具,该工具位于子文件夹/inc/tools
中。
我需要直接链接到标头之前运行。
尽管进行了数小时的搜索,尝试使用摘要,生成器等,但在没有现有RewriteRule集接管的情况下,我无法收到对http://url/sdf19/inc/tools
的任何请求
这是我的起始文件
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)\/?$ index.php?page=$1 [NC]
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ index.php?page=$1&id=$2 [NC]
RewriteRule ^([a-z]+)\/([a-z]+)\/?$ index.php?page=$1&action=$2 [NC]
RewriteRule ^([a-z]+)\/([a-z]+)\/([0-9]+)\/?$ index.php?page=$1&action=$2&id=$3 [NC]
我尝试将其添加到第4行;
RewriteCond %{REQUEST_URI} !^ inc/tools/ [NC]
这给了RewriteCond:错误的参数行错误
我尝试将其添加到第2行;
RewriteCond %{REQUEST_URI} ^/inc/tools/(.*)$
RewriteRule ^.*$ - [L]
期望的结果是,我可以允许直接访问http://url/sdf19/inc/tools
>到目前为止我尝试过的所有内容都重定向到基础http://url/sdf19/
答案 0 :(得分:1)
也许,我们可以逐步解决此问题。第一步,我们可能只想使某些事情在可能的范围内减少。
让我们设计一个low boundary expression,也许类似于:
(.+)(\/inc\/tools)
从这里,我们可以仅将\/inc\/tools
添加到RewriteCond
中,以进行测试。稍后,我们可以对其进行修改。
如果这不是所需的表达式,则可以在regex101.com中修改/更改表达式。
您还可以在jex.im中可视化您的表达式:
您可以在htaccess.madewithlove.be中测试RewriteRules。
我不太确定其余的RewriteRules,但是我假设它们工作正常并且与新的规则不冲突。也许,这或类似的东西会起作用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} \/inc\/tools [NC]
RewriteRule ^(.*)$ $1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)\/?$ index.php?page=$1 [NC]
RewriteRule ^([a-z]+)\/([0-9]+)\/?$ index.php?page=$1&id=$2 [NC]
RewriteRule ^([a-z]+)\/([a-z]+)\/?$ index.php?page=$1&action=$2 [NC]
RewriteRule ^([a-z]+)\/([a-z]+)\/([0-9]+)\/?$ index.php?page=$1&action=$2&id=$3 [NC]
</IfModule>