使用htaccess将wp-Content/Themes/Name/Images掩蔽为仅图像目录

时间:2011-11-30 作者:dreza

我正在尝试一些我认为非常简单的方法来屏蔽我的url,但似乎无法使其正常工作。我希望能够链接到我的img标签中的图像,而不必键入完整的url。

i、 e。

Current url:  http://server.com/wp-content/themes/standard/images/img.jpg
or
<img src = "http://server.com/wp-content/themes/standard/images/img.jpg" />
然而,在我的页面上,我只想

<img src="http://server.com/images/img.jpg" />
然而,在我的localhost上似乎什么都不起作用。我正在windows 7机器上运行Apache服务器。我正在尝试使用。htaccess可以执行我上面提到的操作。这是我的。htaccess文件位于我的网站根目录中。

更新:我尝试了下面的Zweibumen建议,但似乎不起作用。然后我尝试了Geerts的建议,并将重写方法添加到我的misc中。我的管理文件夹的php。然后我转到我的永久链接页面,点击保存。这样做的结果意味着我的。htaccess文件夹已重写,其生成的输出如下。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteRule ^css/(.*) /wp-content/themes/standard/css/$1 [QSA,L]
RewriteRule ^js/(.*) /wp-content/themes/standard/js/$1 [QSA,L]
RewriteRule ^images/(.*) /wp-content/themes/standard/images/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
但是,我仍然无法导航到我的图像文件夹,例如:

http://localhost/images/myimage.jpg.

我得到的只是一个找不到的页面。Joshua的建议非常有效,但我希望将其与屏蔽图像URL结合使用。

是否还有其他我可能做错的事情,或者应该检查一下?

更新时间:

对于任何阅读本文的人来说,我只是再次尝试,它使用了Geerts和Joshuas方法的组合。我的Firefox浏览器似乎一直在缓存页面,这让我觉得不是这样。

我之所以这么做,是因为我把它放在了。htaccess文件是指每次我转到permalinks管理页面时,该文件都会被覆盖,因此我不会无意中覆盖该文件。我想我可以把它关掉,但不知道怎么做。这三个答案都在一定程度上有所帮助。

3 个回复
最合适的回答,由SO网友:Geert 整理而成

查看Roots WordPress Theme. 它们似乎能完全满足您对URL的需求。

下面是他们roots-htaccess.php 文件:

add_action( \'generate_rewrite_rules\', \'roots_add_rewrites\' );

function roots_add_rewrites($content) {
  $theme_name = next( explode( \'/themes/\', get_stylesheet_directory() ) );
  global $wp_rewrite;
  $roots_new_non_wp_rules = array(
    \'css/(.*)\' => \'wp-content/themes/\' . $theme_name . \'/css/$1\',
    \'js/(.*)\'  => \'wp-content/themes/\' . $theme_name . \'/js/$1\',
    \'img/(.*)\' => \'wp-content/themes/\' . $theme_name . \'/img/$1\',
  );
  $wp_rewrite->non_wp_rules += $roots_new_non_wp_rules;
}
注意:如果您可以在.htaccess 文件,正如Zweibumen的回答一样,您应该选择该解决方案,因为它很可能更优化。

SO网友:ZweiBlumen

如果问题只涉及图像,而不涉及css或javascript,我认为您的重写规则中有一个输入错误。我想你在“$”后面缺了一个“1”:

RewriteRule ^images/(.*)$ wp-content/themes/standard/images/$1 [L]
此外,您可能希望尝试将这些额外的语句放在初始规则下面,即这一行下面:

RewriteRule ^index\\.php$ - [L]
但不确定。

SO网友:Joshua Abenazer

为什么不按以下方式为其创建一个短代码。

function img_folder_shortcode( ) {
   return get_stylesheet_directory_uri() . \'/images\';
}
add_shortcode( \'img_folder\', \'img_folder_shortcode\' );
然后在内容区域的任何位置使用以下短代码。

[img_folder]/img.jpg
<img src="[img_folder]/img.jpg" alt="img" />

结束

相关推荐

由于原始非WordPress站点的HTAccess,找不到新安装

我有一个非Wordpress网站,www.example.com为了规范化的目的,我有这个。htaccess:Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\\.example\\.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,L] 这样,所有非www链接都将重定向到网站的www版本。最近,我决定将wordp