如何使用.htaccess编写更干净的URL

时间:2016-01-24 05:14:58

标签: php .htaccess

我试图通过更清晰的URL获得即兴的SEO。 下面是我的.htaccess文件:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^ cleanurl2/podtadquery.php [L]
</IfModule>

以下是我的网址目前的样子:

http://localhost/cleanerurl2/podtadquery.php?product=Actuators&subgroup=Electrical

我想要实现的是

http://localhost/cleanerurl2/podtadquery.php/Actuators/Electrical

请建议我如何实现这一目标。非常感谢

2 个答案:

答案 0 :(得分:0)

您可以在/root/.htaccess

中使用以下代码
RewriteEngine On
#1)
#Redirect from "/cleanerurl2/podtadquery.php?product=foo&subgroup=bar" to "/cleanerurl2/podtadquery.php/foo/bar"
RewriteCond %{THE_REQUEST} /cleanerurl2/podtadquery\.php\?product=([^&]+)&subgroup=([^&\s]+) [NC]
RewriteRule ^ /cleanerurl2/podtadquery.php/%1/%2? [NC,L,R]
#2)
#Now, internally redirect "/cleanerurl2/podtadquery.php/foo/bar" to "/cleanerurl2/podtadquery.php?product=foo&subgroup=bar
RewriteRule ^cleanerurl2/podtadquery\.php/([^/]+)/([^/]+)/?$ /cleanerurl2/podtadquery.php?product=$1&subgroup=$2 [NC,L]

答案 1 :(得分:0)

.htaccess 文件

RewriteEngine On
RewriteRule !\.(?:jpe?g|gif|bmp|png|tiff|css|js)$ index.php [L,NC]

第二行是排除jpg,jpeg,gif,bmp,png,tiff,css和js文件。其他uri将被转发到index.php。

index.php

中的

<?php
$uri = rtrim( dirname($_SERVER["SCRIPT_NAME"]), '/' );
$uri = trim( str_replace( $uri, '', $_SERVER['REQUEST_URI'] ), '/' );

echo $uri;
?>

如果您使用的是ubuntu服务器,请执行下面的行

第1步。

sudo a2enmod rewrite

第2步。 打开apache conf文件

sudo vim /etc/apache2/apache2.conf

取消注释此行(约187行约)

AccessFileName .htaccess

然后找到

所在的行
<Directory /var/www/>
         Options Indexes FollowSymLinks
         AllowOverride None
         Require all granted
</Directory>

替换&#34;无&#34;与&#34;所有&#34;

<Directory /var/www/>
         Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
</Directory>

第3步。 重启apache

service apache2 restart