Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
如果url以双破折号结尾,则要重写(Apache)_Apache_Mod Rewrite - Fatal编程技术网

如果url以双破折号结尾,则要重写(Apache)

如果url以双破折号结尾,则要重写(Apache),apache,mod-rewrite,Apache,Mod Rewrite,若url以双破折号或连字符(-)结尾,我需要重定向到某个内部页面 RewriteEngine On RewriteCond %{REQUEST_URI} --$ RewriteRule .* /error www.mySite.com/myPage--将www.mySite.com/error 但它不起作用。这个代码有什么错误吗 我认为这是因为它处理的是特殊字符而不是字符串 *编辑 这是我的全部vhost.conf ServerName mysite.com DocumentRoot "/my

若url以双破折号或连字符(-)结尾,我需要重定向到某个内部页面

RewriteEngine On
RewriteCond %{REQUEST_URI} --$
RewriteRule .* /error
www.mySite.com/myPage--www.mySite.com/error

但它不起作用。这个代码有什么错误吗

我认为这是因为它处理的是特殊字符而不是字符串

*编辑

这是我的全部
vhost.conf

ServerName mysite.com
DocumentRoot "/myWebRoot/"

ErrorDocument 400 /jsp/errorHandler.jsp
ErrorDocument 403 /jsp/errorHandler.jsp
ErrorDocument 404 /jsp/errorHandler.jsp
ErrorDocument 500 /jsp/errorHandler.jsp
ErrorDocument 503 /jsp/errorHandler.jsp

RedirectMatch --$ /jsp/errorHandler.jsp


<IfModule mod_jk.c>
    JkMount /*.jsp          mysite
    JkMount /*.do           mysite
    JkMount /*.page         mysite
    JkMount /*.json         mysite
    JkMount /servlet/*      mysite
</IfModule>

<LocationMatch "/servlet/*">
    SetHandler jakarta-servlet
    SetEnv     JK_WORKER_NAME mysite
</LocationMatch>

<LocationMatch "/*\.(do$|jsp$)">
    SetHandler jakarta-servlet
    SetEnv     JK_WORKER_NAME mysite
</LocationMatch>

    # BEGIN Expire headers
    <ifModule mod_expires.c>
      ExpiresActive On
      ExpiresByType image/x-icon "access plus 2592000 seconds"
......

    </ifModule>
    # END Expire headers

    # BEGIN Cache-Control Headers
    <ifModule mod_headers.c>

      <LocationMatch "\.(json)$">
            Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
      </LocationMatch>
      <LocationMatch "\.(do)$">
            Header set Cache-Control "max-age=8640000, public, must-revalidate"
      </LocationMatch>
      <LocationMatch "/*/header.jsp">
            Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
      </LocationMatch>
    </ifModule>
    # END Cache-Control Headers

    <Directory "/myWebRoot/">
            Options -Indexes FollowSymLinks MultiViews
            AllowOverride none
            Order allow,deny
            Allow from all 
            Deny from env=go_out
    </Directory>
ServerName mysite.com
DocumentRoot“/myWebRoot/”
ErrorDocument 400/jsp/errorHandler.jsp
ErrorDocument 403/jsp/errorHandler.jsp
ErrorDocument 404/jsp/errorHandler.jsp
ErrorDocument 500/jsp/errorHandler.jsp
ErrorDocument 503/jsp/errorHandler.jsp
重定向匹配--$/jsp/errorHandler.jsp
JkMount/*.jsp mysite
JkMount/*.do mysite
JkMount/*.page mysite
JkMount/*.json mysite
JkMount/servlet/*mysite
SetHandler jakarta servlet
SetEnv JK_WORKER_NAME mysite
SetHandler jakarta servlet
SetEnv JK_WORKER_NAME mysite
#开始过期标题
过期于
ExpiresByType图像/x图标“访问加2592000秒”
......
#结束过期标头
#开始缓存控制头
标题集缓存控制“最大年龄=0,无缓存,无存储,必须重新验证”
标头集缓存控制“最大年龄=8640000,公共,必须重新验证”
标题集缓存控制“最大年龄=0,无缓存,无存储,必须重新验证”
#结束缓存控制头
选项-索引跟随符号链接多视图
不允许超限
命令允许,拒绝
通融
拒绝来自环境=退出
这应该可以:

RewriteEngine On
RewriteRule --$ /error
如果需要实际重定向,可以使用:

RedirectMatch --$ /error
“不工作”告诉我什么。这是在.htaccess文件中还是在virtualhost配置中?你们有其他可能干扰的重写规则吗?这是我的virtualhost配置。(vhost.conf)我将把我的整个配置代码添加到问题中。在我看来,没有什么会干扰规则。