标签: mod-rewrite

Nginx 错误:未知指令重写

我在我的 nginx.conf 中有一个重写:

server {
  server_name example.com;
  rewrite ^/(.*) http://www.example.com/$1 permanent;
}
Run Code Online (Sandbox Code Playgroud)

但返回此错误:未知指令“重写”

PS:我已经和乘客一起安装了 nginx。

你能帮助我吗?

linux mod-rewrite passenger nginx

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

将 301 重定向添加到 Codeigniter .htaccess

我一直在尝试为最近移动的页面设置重定向。该页面最初位于http://example.com/foo/,但后来移至http://example.com/foo/bar/

我在我的网站.htaccess文件中尝试了以下规则:

RedirectMatch 301 ^/foo/$ /foo/bar/

但是,转到 url 会http://example.com/foo/导致重定向到 url http://example.com/foo/bar/?/foo/。虽然 url 有效并且我想重定向到加载的页面,但我很想摆脱?/foo/url 末尾的额外内容。

这是我的完整 .htaccess:

RewriteEngine On
RewriteBase /

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [R=301,L]

# allow access to certain directories in webroot
RewriteCond $1 !^(index\.php|robots\.txt|css/|lib/|js/|images/|^(.*)/images)

# gets rid of index.php
RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# page redirects
RedirectMatch 301 ^/foo/$ /foo/bar/
Run Code Online (Sandbox Code Playgroud)

.htaccess mod-rewrite redirect codeigniter

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

每个存储库 AuthzSVNAccessFile apache 规则与单个 apache 配置文件或其他 shell 脚本解决方案

我正在编写一组 svn 钩子来允许远程管理 SVN 存储库,就像 gitolite 对 GIT 所做的那样。

我创建了为我拥有的每个存储库生成 AuthzSVNAccessFile 的脚本,现在我需要告诉 Apache 根据存储库查找它们中的每一个。

我不能为每个存储库都有一个 apache 配置文件,因为它需要重新启动 apache 服务器。

我知道我可以使用单个 AuthzSVNAccessFile 来管理多个存储库,但是构建文件的脚本需要时间(需要发现存储库中每个目录的完整路径),并且会使提交花费太长时间。

我尝试使用mod_rewrite,但没有用,可能是我用错了。

基本上我需要在我的 apache 配置文件中有一个规则,根据请求的 URL 读取不同的文件,这可能吗?如何?

或者我需要一个能够重写文件块的脚本。我sed用来替换模板中的字符串,但不知道如何使用它来替换多行。

谢谢你的时间

svn apache shell mod-rewrite apache2

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

如何从htaccess中的子文件夹而不是根文件夹加载文件?

我的测试网站是frontshoppe.com

我有以下内容.htaccess

    重写引擎开启
    RewriteCond %{HTTP_HOST} ^frontshoppe\.com$
    RewriteRule (.*) http://www.frontshoppe.com/$1 [R=301,L]
    重写规则 ^$ admin [L]

是的,它加载得很好,就像我希望它加载 admin 文件夹的内容一样..但我也希望 url 是..

仅 www.frontshoppe.com..
而不是
www.frontshoppe.com/admin

php apache .htaccess mod-rewrite

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

使用mod_rewrite和htaccess将主域重定向到https但将所有子域重定向到http

细节

我有一个商业主机gator帐户..不吹牛..附带免费的私人SSL和IP.我正在运行一个使用子域设置的wordpress MU安装,并通过他们提供的插件设置域映射.

假设你对Worpress MU一无所知......基本上Wordpress MU允许你在一个Wordpress安装下创建多个自托管博客.我有一个通配符子域设置来捕获所有sub.domain.com请求和Wordpress MU做一些伏都教来将其重定向到正确的目的地.

私有SSL是免费的,所以我现在不打算使用通配符SSL,但我知道这是一个选项.当我说,当我点击从主域上的https到子域的任何链接时,https会粘贴到URL.

任何人都可以帮我做以下事情吗?

(请注意:我必须在http(s)://和www之间添加空格以打破链接以便发布我的问题)

对于主要的"博客"网址,我希望将www.domain.com和domain.com示例重定向到安全的https,结果为https:// www.domain.com

对于"通配符"子域"子博客"网址,我想将示例sub.domain.com和https:// sub.domain.com重定向为ssl格式为http,结果为http:// sub. domain.com

代码示例将是赞赏和详细(虚拟)教程,所以我可以理解发生了什么将是伟大的.我是mod_rewrite的新手,我的技能等级仅限于基本的301重定向.

谢谢

.htaccess mod-rewrite https wildcard-subdomain http

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

重定向会覆盖.htaccess中的不同规则

我想重定向(301)900个网址.我仔细地制作了整个列表,没有错误,但表现得像字符串替换.以这一行为例:

Redirect    301 /assortiment/artikelen_ingedeeld_per_branche/transporteurs_verhuisbedrijven3/Verhuisdekens____baal_a_25_stuks_.html?id=979 http://example.com/221-transport-en-verhuisbedrijven
Run Code Online (Sandbox Code Playgroud)

还有这条线:

Redirect    301 /assortiment/   http://example.com/alle-producten
Run Code Online (Sandbox Code Playgroud)

当我访问时,/assortiment/artikelen_ingedeeld_per_branche/transporteurs_verhuisbedrijven3/Verhuisdekens____baal_a_25_stuks_.html?id=979它会重定向到/alle-productenartikelen_ingedeeld_per_branche/transporteurs_verhuisbedrijven3/Verhuisdekens____baal_a_25_stuks_.html?id=979

注意assortiment- > alle-producten开头更换.好像它被重写为'str_replace',我看到发生了什么,但我根本不理解.htaccess.

apache .htaccess mod-rewrite redirect

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

在.htaccess中删除URL中的多个斜杠组

我目前有一个网站,客人可以使用任意数量的斜杠访问每个网址,以分隔文件夹名称.例如,如果URL应该是:

http://example.com/one/two/three/four
Run Code Online (Sandbox Code Playgroud)

然后,用户可以通过以下任何一种方式访问​​同一页面:

http://example.com/one//two///three////four/////
http://example.com/one/two////three/four/////
http://example.com///one///////////two////three/four/
http://example.com///////////one///////////two/three/four
Run Code Online (Sandbox Code Playgroud)

但是,我希望上面的示例网址仅将用户重定向到此网址:

http://example.com/one/two/three/four
Run Code Online (Sandbox Code Playgroud)

这是我的.htaccess文件,试图阻止巨大的斜杠:

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^(.*)/+$ /$1 [R=301,L,NC]
RewriteCond %{REQUEST_URI} ^/+(.*)/+$
RewriteRule .* /%1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

第三行成功停止长URL的尾部斜杠.第4行和第5行是我尝试在域名后立即停止斜杠,但这是不成功的.

我问这个问题的原因是因为我不希望谷歌抓住我的重复内容,并且在网站上有活跃的adsense,谷歌可能会扫描我访问的所有网址.

有没有RewriteCond/RewriteRule组合我可以用来剥去中间斜线或者它更复杂?

apache .htaccess mod-rewrite slash trailing-slash

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

WAMP在意外启用或禁用Apache模块后无法启动

因此,今天我试图通过导航到WAMP Apache -> Apache Modulesmode rewrite为我可爱的Wordpress网站启用该模块,从而加快速度...而不是单击我找不到的模块,而是通过输入'mo ...'等到服务器重新启动并且apache不能再启动后再等,我的apache错误日志中也没有重大错误。...我想知道该怎么办才能解决此问题?

但是,当我尝试启用任何apache模块时,出现错误消息 "Could not execute menu item(internal error) [Exception] Could not perform service action: The service has not been started"

我的设置是:

Win10的

WAMP(使用Apache 2.4.9)

windows apache mod-rewrite wamp wampserver

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

.htaccess - 删除 www、强制 https、删除 php 并删除尾部斜杠

我试图用最少的重定向来归档以下内容;

  • 删除 WWW
  • 强制 HTTPS
  • 删除php扩展
  • 删除结尾的斜杠

到目前为止我所拥有的并且正在工作:

RewriteEngine On

# REMOVE WWW
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# FORCE HTTPS
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# REMOVE TRAILING SLASH
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

# REMOVE PHP EXTENSION
RewriteRule ^(.+)\.php$ /$1 [NC,L,R=301]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [END]
Run Code Online (Sandbox Code Playgroud)

当前行为:

http://www.example.com/functions.php -> https://example.com/functions
Run Code Online (Sandbox Code Playgroud)

(适用于 4 个重定向)

或者

http://www.example.com/functions/ -> https://example.com/functions
Run Code Online (Sandbox Code Playgroud)

(适用于 4 个重定向)

有没有人对如何以尽可能少的重定向进行这项工作有任何建议?

php apache .htaccess mod-rewrite redirect

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

如何在网址htaccess中允许一个点?

我从php开始,我想在网址中使用点(。)。例如,使用用户名test.test1的用户应指出具有该用户名的用户的个人资料,但我收到一条错误消息,提示未找到对象。但是,如果我使用字母,数字,破折号或下划线,则效果很好。

在这里工作很好

但是,当我在网址中使用点时会发生以下情况: 在此处输入图片说明

RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?profile_username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?profile_username=$1
Run Code Online (Sandbox Code Playgroud)

这是我所有的.htaccess代码。

php .htaccess mod-rewrite

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