用htaccess删除特定的slu ..

时间:2014-12-30 09:37:04

标签: apache .htaccess mod-rewrite

我在localhost中使用XAMPP创建了一个Wordpress网站。现在我有一个这样的URL:

http://localhost:82/subdirectory/images.html/nggallery/tags/[tagname]

现在我想要这个:

http:// localhost:82/subdirectory/images/nggallery/[tagname]

要删除代码,我尝试了很多代码,例如:

RewriteRule ^tags/(.+)/$ /$1 [R=301,L]

但不起作用。 请帮帮我。


我正在使用 WordPress ,我的htaccess文件看起来像这样

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase /subdirectory/ 

  RewriteRule ^index\.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule . /subdirectory/index.php [L]
</IfModule>
# END WordPress

2 个答案:

答案 0 :(得分:0)

试 http:// localhost:82 /子目录/ images / nggallery / [tagname]

RewriteRule ^nggallery/tags/(.*)$ http://localhost:82/subdirectory/images/nggallery/$1

答案 1 :(得分:0)

在回答之前,比使用htaccess更好的想法是使用Wordpress&#39;重写模块。

无论如何,你需要在 之前确定你的特定规则主要规则。

您可以在htaccess(必须位于subdirectory文件夹中)中替换当前代码

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
  Options +FollowSymLinks -MultiViews

  RewriteEngine On 
  RewriteBase /subdirectory/ 

  # redirect /.../tags/XXX to /.../XXX
  RewriteCond %{THE_REQUEST} /images\.html/nggallery/tags/([^\s\?]+)\s [NC]
  RewriteRule ^ images/nggallery/%1? [R=301,L]

  # internally rewrite /.../XXX to /.../tags/XXX
  RewriteRule ^images/nggallery/(.+)$ images.html/nggallery/tags/$1 [L]

  RewriteRule ^index\.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule ^ index.php [L]
</IfModule>
# END WordPress