Articles of .htaccess

htaccess:仅限于某些子域

我在Apache上为通配符ssl设置了一个域,以便我可以即时创build任何types的子域。 <VirtualHost *:443> DocumentRoot "/var/www/html" ServerName www.domain.com ServerAlias domain.com *.domain.com …. </VirtualHost> 这很好,因为我经常添加子域,我不需要任何其他特殊处理。 当然问题是,现在任何人都可以使用任何随机的子域去默认页面。 即random.domain.com 我的select是什么限制只有当前设置的子域访问? 在htaccess的规则是可行的吗? 就好像它不是这些当前子域中的一个: RewriteCond %{HTTP_HOST} !^sub\.domain\.com [NC] RewriteCond %{HTTP_HOST} !^sub2\.domain\.com [NC]

htaccess:是否有可能与rewritecond问如果请求已经redirect?

我有一个redirect循环,它可以通过问rewritecond来解决,如果这是自用户请求第一次,或者它已经跳。 在.htaccess里面知道吗? 提前致谢。 解: RewriteCond%{ENV:REDIRECT_STATUS}!= 200 做了诡计!

命令允许,拒绝块整个网站

我不能阻止文件的工作。 如果我在.htaccess中使用以下语句,它会阻止我的整个站点: order allow,deny <Files ~ ".*\.(js|JS|css|CSS|jpg|JPG|gif|GIF|png|PNG|mp4|MP4)$"> allow from all </Files> 我正在运行Apache 2.2.22(Debian) 如果我注释掉以上几行,我可以再次访问我的网站。 如果还不清楚,我试图阻止从我下载的所有文件,除了允许的文件types。 在这个普通主题和其他网站上有很多post,但是我已经在这里2到3个小时了,而且我不能把这个问题弄糊涂了。 如果看起来很明显,我感到抱歉。 注意:AllowOverrides肯定是打开的。 我已经在所有的conf目录和包含的目录中清除了AllowOverrides,并且现在到处都打开了。 我已经重新启动了apache2服务,当conf更改已经完成。 任何人都可以看到我做错了什么?

避免由于WWW规范化而导致该子域被redirect

我将这个URL cnonicalization添加到我的.htaccess文件中: RewriteEngine on RewriteCond %{HTTP_HOST} !^www.example.com [NC] RewriteRule ^/?(.*)$ http://www.example.com/$1 [L,R=301] 但现在我的子域shop.example.com正在redirect到www.example.com。 我怎样才能使shop.example.com工作,而不删除URL规范化? 我使用amazon web services。

在与CMS中的HTML相同的子目录下文件

我有一个类似的链接的CMS安装 journal.org/archives/volume136/number10/37362-49383 我想把几个PDF文件放在与上面的HTML相同的目录中,这样就可以从中访问PDF journal.org/archives/volume136/number10/1.pdf journal.org/archives/volume136/number10/2.pdf 但是,在服务器中创build物理目录后,我无法访问 journal.org/archives/volume136/number10/37362-49383 它给出了错误 禁止您无权访问/存档/在此服务器上。 我既不想更改sef url的名称,以使其不匹配目录名称,也不更改目录的名称。 有没有更好的解决scheme在Apache级别?

301redirect自定义链接

我有几千这样的链接 /Gallery?cmd=viewCarGallery&carID=3747&pgID=1 现在我想redirect他们使用.htaccess到另一个网站的其他链接。 每一个链接将被redirect到它自己的目标链接。 我试过这样 Redirect 301 /Gallery?cmd=viewCarGallery&carID=3747&pgID=1 http://example.com/gallery/fcar_gallery 但不工作。 我已经在我的服务器启用mod_rewrite和oltherredirect工作完美。

将旧域的子域redirect到新域中的目录

我想将旧域的子域redirect到新域的目录。 例如forum.old-domain.com应该redirect到new-domain.com/forum从old-domain.comredirect到www.new-domain.com正在工作,除了子域。 htaccess看起来像这样: Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^forum\.old-domain\.de [nc] rewriterule ^(.*)$ http://www.new-domain.de/forum/$1 [r=301,nc,l] rewritecond %{http_host} !^www.new-domain.de [nc] rewriterule ^(.*)$ http://www.new-domain.de/$1 [r=301,nc,l] # rewritecond %{http_host} ^forum.old-domain.de [nc] # rewriterule ^(.*)$ http://www.new-domain.de/forum/$1 [r=301,nc,l] rewritecond %{http_host} ^old-domain.de [nc] rewriterule ^(.*)$ http://www.new-domain.de/$1 [r=301,nc,l] rewritecond %{http_host} ^www.old-domain.de [nc] rewriterule ^(.*)$ http://www.new-domain.de/$1 [r=301,nc,l] 问题是,forum.old-domain.comredirect到www.new-domain.com,但我希望它redirect到www.new-domain.com/forum。 有什么build议么? 我错过了什么? 提前致谢! 编辑: 添加虚拟主机条目: […]

重写URL,但有PHP读取旧的URL

在我的平台上,每个用户都有自己的configuration文件。 该文件是由他们创build的子域命名的。 例: user1.domain.com user2.domain.com user3.domain.com 系统通过$ _SERVER ['SERVER_NAME']读取URL并抓取子域。 然后它根据子域查找适当的configuration文件。 例: if the url is user1.domain.com the system looks up user1.config.php. 每个用户都可以select使用自己的域名。 我现在正在通过指出Alogging来做到这一点。 例: user 1 points theirDomainName.com to my IP address via their A record 我怎样才能使用htaccess所以url读取他们的theirDomainName.com但平台(PHP)的后端读取user1.domain.com因此平台知道拉user1.config文件

NGINX index.php重写规则不会工作

最近我改变了我的networking服务器从cpanel和CENTOS 7,使用nginx与一个名为nDeploy scipt,这与wordpress和托pipe在我的服务器上的网站很好。 我有这个脚本不工作。 由于nginxconfiguration,我的网站正在使用一个主要的index.php访问大多数网页,一些PHP模板解决scheme,但我只得到这个错误: "500 too many redirects" 所以这里是我的.htaccess(当我使用Apache,这使得伎俩): Options +FollowSymLinks RewriteEngine On RewriteRule ^([^/]*)\.php$ index.php?page=$1 [L,QSA] 这是我的nginx conf文件: # Downloads rewrite ^/downloads/([0-9]+)/([^/]*)$ /./downloads.php?action=displaycat&catid=$1 last; rewrite ^/downloads$ /./downloads.php last; #Knowledgebase rewrite ^/knowledgebase/([0-9]+)/[a-zA-Z0-9-]+\.html$ /./knowledgebase.php?action=displayarticle&id=$1 last; rewrite ^/knowledgebase/([0-9]+)/([^/]*)$ /./knowledgebase.php?action=displaycat&catid=$1 last; rewrite ^/knowledgebase$ /./knowledgebase.php last; location / { try_files $uri $uri/ /index.php?$args; } location /NaxsiRequestDenied { return […]

.htaccess文件未加载PHP文件

我正在努力解决为什么加载.php文件时,我的.htaccess没有被考虑。 下面的文件坐在我的本地主机的webroot。 的.htaccess # Cause a HTTP 500 test file.html <html><body><h1>This should not show</h1></body></html> file.php <html><body><h1>This should not show</h1></body></html> 当我访问/index.html时,我得到预期的HTTP500当我访问/index.php时,html显示。 任何想法为什么.htaccess不会加载的PHP文件? Apache 2.4.6 VHost(/etc/httpd/vhosts.d/website.local.conf): <VirtualHost *:443> ServerName website.local ServerAlias www.website.local DocumentRoot /var/www/vhosts/website/website <Directory /var/www/vhosts/website/website> require all granted Options Indexes FollowSymLinks AllowOverride All </Directory> # Trigger PHP-FPM to run PHP execution <IfModule proxy_fcgi_module> ProxyPassMatch "^/(.*\.php(/.*)?)$" "unix:/var/www/vhosts/website/php-fpm.sock|fcgi://website/var/www/vhosts/website/website" […]