Articles of mod rewrite

apache2 mod_rewrite启用,但不能正常工作

我在我的服务器上启用了mod_rewrite,并使用phpinfo()进行了确认,并显示为已启用。 我在我的httpd.conf文件中有以下内容: ServerName 172.16.1.114 RewriteEngine on RewriteRule ^/test$ /index.php 我已经尝试了另一台服务器上的重写规则,并按预期工作。 没有错误抛给我的Apache错误日志,并重新启动干净。 当我尝试页面404s,并不加载index.php 我相信这肯定是一个简单的问题,但是我对如何解决这个问题感到不知所措。 任何帮助表示赞赏。

使用.htaccess删除php扩展不起作用

我在我的网站elixnews.com上使用以下代码从以下位置删除php扩展: RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L] 要从我的链接中删除www和php扩展,但它不起作用: http : //elixnews.com/todays_news – 怎么了?

在Apacheredirect规则上丢弃端口号

我想找出一个重写规则丢弃端口81.我使用no-ip,所以请求命中端口81,然后我有一个重写规则redirect到SSL。 现在看起来像https://example.com:81 ,我得到一个SSL错误。 有没有办法在sslredirect后丢弃:81?

Apache Proxy来显示另一个网站

我需要代理URL http://de.domain.com/article1/foobar/到http://de.foobar.domain.com/article1/ 。 我怎样才能获取和设置子域语言的一部分? 例子: http://de.domain.com/article1/foobar/ => http://de.foobar.domain.com/article1/ http://dk.domain.com/article1/foobar/ => http://dk.foobar.domain.com/article1/ http://en.domain.com/article1/foobar/ => http://en.foobar.domain.com/article1/ http://el.domain.com/article1/foobar/ => http://el.foobar.domain.com/article1/ 我听说这是不可能的只有mod_proxy和我必须使用mod_rewrite为此。 但我不知道如何。 也许有人可以发表一个例子? redirect是不行的。

SSL / TLS客户端证书使用RewriteCond和Rewrite Rules进行身份validation,以敏感地redirect未经授权的通信

我终于写在这里,因为我非常努力地对抗apache,SSL / TLS和客户端证书authentication,应该使用证书的序列号来限制访问特定的API调用。 更好地解释一些细节: 用户必须能够访问: https:// {host} / apiv3xx / s?testing没有任何问题和限制,但对于以下url: https:// {host} / apiv3xx / x?action = login&user = blablabla为了执行呼叫,需要客户端证书。 我以为实施以下解决scheme: <Location /apiv3xx> SetEnv api 1 SSLOptions +StdEnvVars -ExportCertData SSLVerifyClient optional SSLVerifyDepth 10 </Location> 另外还有一些重写规则来控制逻辑: RewriteCond %{REQUEST_URI} ^/apiv3xx/ [NC] RewriteCond %{QUERY_STRING} action=log([^&]*)?(?=&|$) [NC,OR] RewriteCond %{QUERY_STRING} action=adm([^&]*)?(?=&|$) [NC,OR] RewriteCond %{QUERY_STRING} action=ctc([^&]*)?(?=&|$) [NC] RewriteCond %{SSL:SSL_CLIENT_M_SERIAL} !(01000000000140AAD72ACCXXXXXX|02000000000140BAD37F1XXXXXXX) […]

使用Apache的mod_proxy作为网关是否存在安全问题?

为了应对AJAX调用的同源策略,我想允许mod_rewrite和mod_proxy以类似的方式处理这些调用,如另一个答案中所述 : rewriteEngine on rewriteRule proxy/(.+)$ http://api.example.com/$1 [P] 不过,我正在通过networking阅读所有使用mod_proxy可能是危险的业务。 所以我的问题是:是否有任何安全问题启用mod_proxy并以上述方式使用它? 如果是这样,我应该select什么样的configuration来安全地使用mod_proxy网关? 谢谢,任何帮助表示赞赏。 PS:是的,我知道CORS是解决同源问题的一个更合理的方法,但是我正在使用的远程站点有点不愿意支持CORS,所以我必须寻找替代scheme。

Apache mod_rewrite:如何处理URL中的斜杠?

我有一个以下的URL结构: http://mysite.com/movies/index.php?id=123 我想摆脱index.php?id = 123,而是使用下面的URL: http://mysite.com/movies/123 我想出了在/ var / www / mysitecom / movies目录下面的.htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*)$ mysitecom/movies/index.php?id=$1 [L,QSA] 它工作。 例如,当我指定… http://mysite.com/movies/123 我得到… http://mysite.com/movies/index.php?id=123 当我指定时,麻烦开始… http://mysite.com/movies/123/ 用这个斜杠,我没有正确处理URL。 它看起来像我没有指定ID,所有我的CSS样式不适用。 我试图玩在正则expression式的规则,如… RewriteRule ^([^/]+)[/]*$ mysitecom/movies/index.php?id=$1 [L,QSA] …但它没有帮助。 所以我的问题是如何处理斜线在我的情况? 我应该select我的重写规则还是需要做别的事情? 我需要确保http://mysite.com/movies/123/的处理方式与http://mysite.com/movies/123完全相同。 有什么想法吗? 谢谢, 更新: 用户DSumsky帮助了我(下图)。 Dsumsky ,非常感谢你的回答。 […]

如何更改NGINX服务器名称

在Apache Web服务器中,我们可以使用mod_rewrite更改服务器签名(Apache名称)。 例如 – http://www.howtoforge.com/changing-apache-server-name-to-whatever-you-want-with-mod_security-on-debian-6 我怎样才能跟Nginx一样呢? 我是Nginx新手,想用我自己的签名来replaceNginx的名字。 我正在使用Ubuntu 12.04服务器版。

RewriteBase规则在.htacess中,但不在httpd.conf中(在<Directory …>中)。

让我通过例子来解释… 文件: /var/www/example.com/public/wp-content/cache/minify/.htaccess <IfModule mod_rewrite.c> # THIS WORKS… RewriteBase /wp-content/cache/minify/ RewriteRule /w3tc_rewrite_test$ ../../plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1 [L] RewriteCond %{REQUEST_FILENAME}%{ENV:APPEND_EXT} -f RewriteRule (.*) $1%{ENV:APPEND_EXT} [L] RewriteRule ^(.+/[X]+\.css)$ ../../plugins/w3-total-cache/pub/minify.php?test_file=$1 [L] RewriteRule ^(.+\.(css|js))$ ../../plugins/w3-total-cache/pub/minify.php?file=$1 [L] </IfModule> 文件: /etc/apache2/httpd.conf <Directory /var/www/example.com/public> AllowOverride None Options -MultiViews […] <IfModule mod_rewrite.c> Options +FollowSymlinks # Options +SymLinksIfOwnerMatch RewriteEngine On # RewriteBase / </IfModule> […] <IfModule mod_rewrite.c> […]

Apache – 返回所有select的execept 404

我正在寻找方法,以防止访问WordPress的pipe理文件夹“wp-admin”,但也需要Apache生成404错误(未find)的所有,但没有选定的IP。 我发现这篇文章返回404代码未经授权的尝试,并尝试重写解决scheme,但不适用于我。 所以我把所有的网站保存在/ usr / local / www / apache22 / data中,并尝试在httpd.conf(Apache2.2 FreeBSD 9.1)中使用这样的configuration。 <Directory "/usr/local/www/apache22/data"> RewriteEngine on RewriteCond %{REMOTE_ADDR} !=77.120.9.3 [OR] RewriteCond %{REMOTE_ADDR} !=77.120.9.5 RewriteRule ^wp-admin($|/) – [L,R=404] </Directory> 例如,网站wp-admin的位置是:/usr/local/www/apache22/data/doman.com/wp-admin