我在 Debian etch 上运行 apache2,有多个虚拟主机。
我想重定向,以便http://git.example.com转到http://git.example.com/git/
应该很简单,但谷歌并没有完全削减它。我已经尝试了重定向和重写的东西,但它们似乎并没有做我想做的......
我希望有人能帮我解决这个问题。
如果我运行以下测试 -
http://dnscheck.pingdom.com/?domain=www.empleosmadrid.es
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
在父级中找不到委派。在父节点上找不到委派,使您的区域无法从 Internet 访问。
我试过谷歌搜索错误,但我没有找到太多。
有谁知道错误意味着什么以及我如何解决它?
我想使用该文件将带有大写字符的 URL 重定向http://localhost/A/B到小写版本。http://localhost/a/b.htaccess
使用正则表达式我可以捕获 A 和 B 但是否可以将它们转换为小写?
客户在 有一个应用程序www.example.com/dir。他们现在已经在dir.example.com. 子域引用存储在www.example.com/dir. 他们现在希望人们访问www.example.com/dir被重定向到dir.example.com.
我猜我需要一个.htaccess坐下来www.example.com/dir,如果它是通过 www 访问的,则重定向到子域,只是不确定语法。
比较这两个RedirectMatch。第一个不起作用:
RedirectMatch 302 ^/redirect\.php[?]page=(.+)$ http://somewhereelse.com/$1
Run Code Online (Sandbox Code Playgroud)
与此相反,它将重定向到http://somewhereelse.com/?page=wherever:
RedirectMatch 302 ^/redirect\.php([?]page=.+)?$ http://somewhereelse.com/$1
Run Code Online (Sandbox Code Playgroud)
是否RedirectMatch只匹配 URI 而不是查询字符串?Apache 的文档在这方面有点含糊。我想要做的是提取page查询参数并使用它重定向到另一个站点。
这是可能的RedirectMatch还是我必须使用RewriteCond+ RewriteRule?
我有一个问题,ApachePHP $_SERVER['REQUEST_URI']在 URL 被重写而不是原始请求后将 URL传递给变量。
我正在做这个重写,因为我有一个 WordPress 网站,想把它移动到一个子目录而不是把它放在根路径中,但仍然想保持它的 URL 作为根 URL。
这不会一直发生。如果我请求www.xyz.com/wp-admin它填充 PHPREQUEST_URI变量www.xyz.com/wordpress/wp-admin(这是重写后的 URL),但如果我请求www.xyz.com/wp-admin/(带有尾部斜杠),它实际上填充 PHPREQUEST_URI变量www.xyz.com/wp-admin/(重写之前的原始 URL)。我想要的是REQUEST_URI在重写之前用 URL 填充。
我的.htaccess文件如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?xyz.com$
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wordpress/$1
RewriteCond %{HTTP_HOST} ^(www.)?xyz.com$
RewriteRule ^(/)?$ wordpress/index.php [L]
</IfModule>`
Run Code Online (Sandbox Code Playgroud)
PHP 版本是 5.3。Apache 版本是 2.4 (Win32)。
更新:我查看了更多,当我输入 URL 时,www.xyz.com/wp-admin首先会有一个 301 重定向,www.xyz.com/wordpress/wp-admin/但这不会发生 …
我希望当人们使用 IP 地址访问我的 Web 服务器时,例如http://10.0.0.1,被重定向到域名,例如http://example.com. 我正在使用 Apache Web Server,并且尝试过:
<VirtualHost 10.0.0.1:80>
Redirect / http://example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
它生成了一个无限重定向循环,因为它的优先级高于
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
这是我最终想要服务的虚拟主机。
我也试过
<VirtualHost 10.0.0.1:80>
ServerName 10.0.0.1
Redirect / http://example.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
认为也许它只会匹配http://10.0.0.1但不会匹配http://example.com。但它也会产生无限循环。任何想法如何实现这一目标?
IP虚拟主机之所以不是主要且唯一的虚拟主机,是因为我希望服务器上的其他IP也能够服务example.com。
接收错误:
[调试] mod_headers.c(663): headers: ap_headers_output_filter()
在我将其包含在.htaccess文件中之后:
# 6 DAYS
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=518400, public"
</FilesMatch>
# 2 DAYS
<FilesMatch "\.(xml|txt)$">
Header set Cache-Control "max-age=172800, public, must-revalidate"
</FilesMatch>
# 2 HOURS
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=7200, must-revalidate"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
对于我可以做些什么来解决这个问题,任何帮助表示赞赏?
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
...导致从“www 到非 www”的完美的非硬编码 301 重定向,完全相反的情况会是什么样子?
编辑:
根据 Prix 的帖子,我已将.htaccess文件更改为以下内容:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
如前所述,http://www./不幸的是,这重定向到。谁能帮忙?
我有一个受 HTTP 基本身份验证保护的 API。
当我想针对 API 发出 AJAX 请求时,浏览器会发送一个不携带 Authorization 标头的 OPTIONS 请求,因此它会被拒绝,因此浏览器不允许我的 AJAX 调用。
我尝试将 Tomcat 配置为不验证 OPTIONS 请求,但未能使其正常工作。
如何在 Tomcat 中禁用 OPTIONS 请求的 HTTP 身份验证?
apache-2.2 ×6
.htaccess ×5
redirect ×4
mod-rewrite ×3
php ×2
rewrite ×2
301-redirect ×1
ajax ×1
apache-2.4 ×1
apache2 ×1
cache ×1
cors ×1
linux ×1
mod-alias ×1
querystring ×1
tomcat ×1
virtualhost ×1