Apache 2.4 .htaccess友好URL重写

时间:2017-04-05 20:38:36

标签: apache .htaccess mod-rewrite url-rewriting

了解.htaccess文件并使其正常工作时遇到一些问题。 .htaccess被识别....我在顶部进入普通测试并得到内部服务器错误。并且看起来mod-rewrite正在工作......因为我下载了一个测试php文件并且它可以工作。

我正在使用没有php页面的Apache 2.4.23

然而我似乎无法使其正常工作。

我正在尝试使用此网址

http://example.com/ProjectTest/index.shtml?dynContent=Content1

并像这样重写

http://example.com/ProjectTest/Content1

我也试图在整个网站上做到这一点?dynContent =无论什么都是常数.....并试图保持相同的路径......如下例所示

更改此

http://example.com/ProjectTest/ProjectFolder/index.shtml?dynContent=Content1

到这个

http://example.com/ProjectTest/ProjectFolder/Content1

我对.htaccess文件不太满意

更新:好的......我让这个工作.....不确定它为什么会起作用....但是当我输入test-dev / ProjectTest / apples或者test-dev / ProjectTest / oranges调用适当的内容。

这是我用的

RewriteRule ^ProjectTest/([^/\.]+)/?$ ProjectTest/index.shtml?dynContent=$1 [L]

然后我把它改写成这个,现在它适用于任何目录

RewriteRule ^(.*)/([^/\.]+)/?$ $1/index.shtml?dynContent=$2 [L]

1 个答案:

答案 0 :(得分:0)

试试这个:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^dynContent=(.+)$
RewriteRule ^/(.+)+/index.shtml $1/%1 [PT]

这需要激活mod_rewritedynContent=(.+)中括号的值存储在%1中,^/(.+)+/index.shtml中的括号值存储在$1中。两者一起创建目标路径http://example.com/ProjectTest/ProjectFolder/Content1