Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Apache htaccess在不更改rewritebase的情况下重写漂亮的url_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache htaccess在不更改rewritebase的情况下重写漂亮的url

Apache htaccess在不更改rewritebase的情况下重写漂亮的url,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,试图重写几个不同的URL而不更改重写基。包含查询的以下URL: http://example.com/directory1/directory2/job?id=100 http://example.com/directory3/directory4/profile?id=200 将成为: http://example.com/directory1/directory2/job/100 http://example.com/directory3/directory4/profile/200 现

试图重写几个不同的URL而不更改重写基。包含查询的以下URL:

http://example.com/directory1/directory2/job?id=100
http://example.com/directory3/directory4/profile?id=200
将成为:

http://example.com/directory1/directory2/job/100
http://example.com/directory3/directory4/profile/200
现行规则:

RewriteRule ^directory1/directory2/job/([0-9]+)$ ./directory1/directory2/job?id=$1 [L,QSA]

RewriteRule ^directory3/directory4/profile/([0-9]+)$ ./directory3/directory4/profile?id=$1 [L,QSA]
完全访问:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
        Options +FollowSymLinks
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    RewriteRule ^directory1/directory2/job/([0-9]+)$ ./directory1/directory2/job?id=$1 [L,QSA]

    RewriteRule ^directory3/directory4/profile/([0-9]+)$ ./directory3/directory4/profile?id=$1 [L,QSA]

</IfModule>

选项-多视图
选项+FollowSymLinks
重新启动发动机
#重定向尾部斜杠。。。
重写规则^(.*)/$/$1[L,R=301]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]
重写规则^directory1/directory2/job/([0-9]+)$。/directory1/directory2/job?id=$1[L,QSA]
重写规则^directory3/directory4/profile/([0-9]+)$。/directory3/directory4/profile?id=$1[L,QSA]

将规则按以下顺序排列:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
        Options +FollowSymLinks
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    RewriteCond %{THE_REQUEST} (/directory1/directory2/job)\?id=([^\s&]+) [NC]
    RewriteRule ^ /%1/%2? [R=302,L,NE]

    RewriteCond %{THE_REQUEST} (/directory3/directory4/profile)\?id=([^\s&]+) [NC]
    RewriteRule ^ /%1/%2? [R=302,L,NE]

    RewriteRule ^(directory1/directory2/job)/([0-9]+)$ $1?id=$2 [L,QSA]

    RewriteRule ^(directory3/directory4/profile)/([0-9]+)$ $1?id=$2 [L,QSA]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>

选项-多视图
选项+FollowSymLinks
重新启动发动机
#重定向尾部斜杠。。。
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)/$/$1[L,R=301]
RewriteCond%{u请求}(/directory1/directory2/job)\?id=([^\s&]+)[NC]
是否重写规则^/%1/%2?[R=302,长,东北]
RewriteCond%{u请求}(/directory3/directory4/profile)\?id=([^\s&]+)[NC]
是否重写规则^/%1/%2?[R=302,长,东北]
重写规则^(directory1/directory2/job)/([0-9]+)$$1?id=$2[L,QSA]
重写规则^(目录3/目录4/profile)/([0-9]+)$$1?id=$2[L,QSA]
#处理前控制器。。。
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_FILENAME}-F
重写规则^index.php[L]

那么,哪些规则不适用?没有错误。完整编辑问题谢谢您的跟进。我仍然一无所获,也没有错误。加上其他条件和规则,效果很好。我需要定义一个查询字符串吗?$\u GET不可访问,我还以为它是顺序,但这没有帮助,它实际上是一个
directory1/directory2/job.php
文件?您是否也在使用一些框架,如WP/Joomla等?使用Laravel,因此这是一条路线/bladeI我不熟悉Laravel,但我怀疑Larael的前端控制器不喜欢内部重写规则修改
$\u GET
,就像WP/Joomla等一样。