网址重写指南

时间:2016-10-10 17:46:05

标签: php apache .htaccess url-rewriting

我的网址如下:

http://localhost/project/test/jobs/?page=accounting

<a href="<?php echo BASE_URL; ?>jobs/?page=accounting">Accounting</a>

我希望如下所示:

http://localhost/project/test/jobs/accounting

我搜索了其他问题,但无法成功。因为我完全没有意识到这个.htaccess重写过程:(

但是我的htaccess文件中已有以下代码来删除.php扩展名:

RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/folder/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

请帮我在上面的htaccess文件中添加URL重写规则,而不会丢失.php ext规则。

2 个答案:

答案 0 :(得分:0)

你正在使用params获取请求,如果你的wana发帖请求那么它仍然存在,那么它将是像这样的东西 http://localhost/project/test/jobs/accounting

答案 1 :(得分:0)

我通常使用链接构建将所有流量发送到我的index.php whitch将其拆分为MVC框架,这是我的.htaccess的重要部分

Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) index.php?path=$1 [L,QSA]

这个.htaccess按规则做什么规则?

Options +FollowSymLinks

http://www.maxi-pedia.com/FollowSymLinks

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

检查或请求的文件不是目录或实际文件的直接路径,如果我错了,请纠正我,因为我不是百分百肯定。

RewriteRule (.*) index.php?path=$1 [L,QSA]

重写&#34; / test / testings / lalalala&#34;的路径进入&#34; index.php?path = / test / testings / lalalala&#34;。

我希望这是您正在寻找的答案。