标签: mod-rewrite

双斜杠apache配置

我正在部署一个ror应用程序,现在我必须重写url(在apache中)

  • 在网址中添加前缀www
  • 添加/到网址的末尾

所以我采取了以下方法:

RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^foo\.com
RewriteRule ^(.*)$ http://www.foo.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

问题是它将两个尾部斜杠附加到我的URL所以例如资源/问题/问题正在变为:

http://foo.com//question/ask
Run Code Online (Sandbox Code Playgroud)

我试图在我的所有重写规则之前添加以下规则以尝试删除双//:

RewriteCond %{REQUEST_URI} ^//
RewriteRule ([^/]*)/+(.*) http://www.foo.com/$1/$2 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

但它没有工作..任何想法扯掉所有额外的"//"添加到网址?

mod-rewrite apache2

0
推荐指数
1
解决办法
2672
查看次数

Zend - Deny访问CSS,JS,图像文件

所有,

我有以下Zend应用程序结构:

helloworld
 - application
     - configs
     - controllers
     - models
     - layouts
 - include
 - library
 - public
    - design
       -- css
           -- site.css
       -- js
           -- global.js
       -- images
           -- siteheader.gif
           -- sitefooter.gif
    - .htaccess
    - index.php
Run Code Online (Sandbox Code Playgroud)

公用文件夹中的.htaccess文件如下所示:

Options -MultiViews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Run Code Online (Sandbox Code Playgroud)

我的文档根指向"public"文件夹.目前,如果用户访问目录级URL,(例如:http:// localhost/design 或localhost/css),上面的.htaccess文件确保向他显示"禁止访问"页面.但如果他访问文件级URL,(例如:http://localhost/design/css/site.css),它会向他显示CSS文件或js文件或PHP文件.

如果直接从URL访问,如何确保锁定上述文件类型的文件级访问权限?由于我的应用程序是JS密集型的,我想保护它免受用户的关注.

谢谢

mod-rewrite zend-framework

0
推荐指数
1
解决办法
1142
查看次数

基础Href与.htaccess RewriteBase

通常我用

<base href="http://domain.com/" /><!--[if ie]></base><![endif]--> 
Run Code Online (Sandbox Code Playgroud)

我没有尝试过RewriteBase,我通常会感到困惑并不断改变它直到它工作.哪种方法最好,我显然找到了最佳解决方案,因为链接保持不变,因此在附加css文件时大多数情况下不会断开任何链接,例如

http://domain.com/css/main.css

访问子目录时,它始终保持不变.虽然,当我不使用标签,并且我访问子目录时,它在我使用时打破了css链接

<link href="css/main.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

由于我的PHP文档将包含标题,

<?php include("include/global_header.php"); ?>
Run Code Online (Sandbox Code Playgroud)

如果我没有这样做,我将不得不使用:

<link href="../css/main.css" rel="stylesheet" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

访问子目录时可能会中断.

那么...... RewriteBase的工作原理是否相同?

你的意见.

.htaccess mod-rewrite url-rewriting stylesheet

0
推荐指数
1
解决办法
2962
查看次数

带有GET请求的mod_rewrite

我有mod_rewrite在我的大部分网站上工作.现在我有一个通常会指向的搜索

search.php?keyword=KEYWORD
Run Code Online (Sandbox Code Playgroud)

而我正在尝试重写它

search/?keyword=KEYWORD
Run Code Online (Sandbox Code Playgroud)

只是为了让它更清洁一点.所以这是我的mod_rewrite.(还有其他规则我只是发布了一个不起作用的规则.)

RewriteRule ^search/?keyword=([^/\.]+)/?$ search.php?search=$1
Run Code Online (Sandbox Code Playgroud)

当我在地址栏中输入我希望它的搜索方式时,我得到一个页面告诉我它是一个"断开链接"(我猜这是Chrome相当于404错误).那么我做错了什么?我认为问题是'='或'?' 登录规则(第一部分),因为当我将?keyword = part取出时,它可以正常工作.那有意义吗?


编辑:这是我的完整.htaccess代码:

RewriteEngine on
RewriteRule ^$ index.php
RewriteRule ^thoughts$ archives.php 
RewriteRule ^thoughts/$ archives.php
RewriteRule ^about$ about.php 
RewriteRule ^about/$ about.php 
RewriteRule ^search/\?keyword=([^/]+)$ search.php?search=$1 
RewriteRule ^tags/([^/]+)$ tags.php?tag=$1
RewriteRule ^thoughts/([^/]+)$ post.php?title=$1 [L]
Run Code Online (Sandbox Code Playgroud)

仍有错误页面...

apache .htaccess mod-rewrite

0
推荐指数
1
解决办法
2542
查看次数

将.htaccess用于Amazon S3 CloudFront中的服务器文件

我理想的设置是获取当前客户端站点,上传带有正则表达式的.htaccess,与URI匹配,如果找到某个文件扩展名,它将使用相同的路径,但域名更改.

即.

正常路径:

http://www.domain.com/something/images/someimage.jpeg
http://www.domain.com/assets/js/jquery.js

.htaccess翻译将上述内容变为:

http://mycdn.other.com/something/images/someimage.jpeg
http://mycdn.other.com/assets/js/jquery.js

我连续几个小时用谷歌搜索,没有运气.同样,这是为了实际使用亚马逊的CloudFront.S3已经安装到网站上,用于使用s3fs备份和存储文件,但由于它直接使用S3而不是使用CloudFront,因此无法解决问题.

.htaccess mod-rewrite amazon-s3 amazon-cloudfront

0
推荐指数
1
解决办法
2191
查看次数

在Wordpress中自定义重写规则

我在内部wordpress重写规则方面遇到了麻烦.我已经阅读了这个帖子,但我仍然无法得到任何结果:WordPress插件中的wp_rewrite

我解释一下我的情况:

1)我有一个名为'myplugin_template.php'的page_template与一个名为"mypage"的wordpress页面相关联.

<?php
get_header();
switch ($_GET['action']) {
  case = "show" {
  echo $_GET['say'];
  }
}
get_footer();
?>
Run Code Online (Sandbox Code Playgroud)

2)我需要为此链接创建重写规则:

HTTP://myblog/index.php页面名=我的空间和行动=展览会暨说=程序hello_world

如果我使用这个url所有的东西都没有问题,但我想实现这个结果:

http://myblog/mypage/say/hello_world/
Run Code Online (Sandbox Code Playgroud)

我真的不想破解我的.htaccess文件,但我不知道我怎么能用内部的wordpress重写器做到这一点.

wordpress mod-rewrite rewrite

0
推荐指数
1
解决办法
4498
查看次数

帮我改写重写规则

我需要一些重写规则的帮助

我的几乎所有页面都是这样的:

index.php?key=guild&id=939&view=board
index.php?key=player&id=300941&view=edit
index.php?key=mod&id=41&view=download
Run Code Online (Sandbox Code Playgroud)

我可以使用1个重写规则吗?因为我的所有页面都有相同的$ _get

/guild/939/board
/player/300941/edit
Run Code Online (Sandbox Code Playgroud)

apache mod-rewrite

0
推荐指数
1
解决办法
53
查看次数

使用PHP脚本来协助.htaccess mod_rewrite

我打算在我的网站上使用大量的URL重写,但我不熟悉Apache的mod_rewrite,因为它很难记录.

我听说有一些选项允许调用各种脚本进行重写.你能帮帮我吗?

php apache .htaccess mod-rewrite

0
推荐指数
1
解决办法
927
查看次数

如何在CakePHP中启用SEO友好的URL?

我要像做www.mydomain.com/page-slugwww.mydomain.com/custom-pages/view/page-slug,像WordPress的.我怎么能在CakePHP中做到这一点.

mod-rewrite seo cakephp

0
推荐指数
1
解决办法
1658
查看次数

如何使用mod_rewrite忽略对php文件的访问?

例如:www.example.com/about.php

我不希望扩展名为.php的文件可以访问,而是显示404页面.

我有根文件夹中的文件:content.php about.php footer.php等...现在我可以通过输入到地址栏来访问这些文件.我想限制这个.

我怎样才能做到这一点?

php mod-rewrite

0
推荐指数
1
解决办法
768
查看次数