我有一个服务器与几个scponly帐户,我想在基本身份validation提供http访问。 问题的第一部分解决了,使用mod_rewrite为每个用户select合适的目录。 但是当我尝试为每个用户build立一个不同的auth用户文件时,问题就出现了。 只是我无法find如何做到这一点。 这是一个示例configuration。 <VirtualHost an-ip-number-and:a-port> ServerName *.example.com RewriteEngine On UseCanonicalName Off RewriteCond %{HTTP_HOST} ^(.*).example.com RewriteCond /server/scponly/%1/incoming -d RewriteRule ^(.+) %{SERVER_NAME}$1 [C] RewriteRule ^([^.]+)\.example\.com/(.*) /server/scponly/$1/incoming/$2 [L] RewriteRule ^(.+) http://FAIL.example.com <Directory /server/scponly/*/incoming> AuthType Basic AuthName "SFTP-HTTP Area" AuthUserFile ??????? # <– this! require valid-user </Directory> </VirtualHost> 笔记: 我不能下降mod_rewrite因为其他目的,实际的configuration是与其他servername /目录混合检查/重写。 我无法将身份validation详细信息移至.htaccess文件,因为用户可能会将其删除。 但是,如果这种方法是部分解决scheme,我很感兴趣。 我也对其他方法感兴趣 我需要为每个目录创build不同的auth文件,只有一个文件将授予每个用户对所有目录的访问权限
我希望将除www.example.com和example.com之外的其他内容指向不同的根目录。 所以example.com和 example.com/page将会分为两个独立的根源。 我需要这样做,所以我可以让主页在发展中的其他地方。 这里是我的虚拟主机的网站看起来像。 ServerName www.example.com ServerAlias *.example.com DocumentRoot /var/www/example
我有以下重写规则: RewriteRule ^products/([a-zA-Z]+)$ /project/clients/index.php?database=$1&module=products [L,QSA] 目录结构如下: /var/www/project/clients/index.php 当写入地址"http://host/products/clientA/"被定向到"/project/clients/index.php?database=clientA&module=products" 。 在我的虚拟机与Linux(debian)在我的电脑工作正常,但服务器Linux返回一个403错误。 但是如果我改用这个规则: RewriteRule ^project/products/([a-zA-Z]+)$ /project/clients/index.php?database=$1&module=products [L,QSA] 然后写入URL: "http://host/project/products/clientA/" ,效果很好 "/var/www/project/"和子目录的权限,对于Apache来说是正确的。 谢谢。 最初的问题
在Apache 2.2.x上,我激活了mod_userdir 。 我使用了默认的设置,这样http://localhost/~name/ ~name/public_html/mySite http://localhost/~name/将被连接到~name/public_html/mySite ~name/public_html/并且~name/public_html/一个path,例如~name/public_html/mySite可以通过http://localhost/~name/mySite 。 我怎么能实现,通过http://mySite.name.localhost/可以达到相同的path? 我不希望像其他SF问题(如Apache:使用子域设置本地testing服务器 )中所build议的那样使用手动方法,而是希望将所有可用path自动映射到相应的URL。 我认为,需要采取以下几个步骤:更改mod_userdirconfiguration,以便localhost的子域将与机器上所有可用的用户名连接起来。 第二步可能会包括mod_rewrite的使用,以便sububdomain可以匹配到〜name / public_html中的path… 什么是你最喜欢的方式? 编辑: 解决scheme被标记。 我做了一些小修改以满足特殊要求和补充意见: RewriteEngine on # check, if not redirected yet RewriteCond %{ENV:REDIRECT_STATUS} ^$ # look for URLS like 'subdir.username.localhost' RewriteCond %{HTTP_HOST} (.+)\.([^.]+)\.localhost$ # check if /home/username/public_html/subdir is a directory or symbolic link RewriteCond /home/%2/public_html/%1 -d [OR] RewriteCond /home/%2/public_html/%1 […]
如何在Lighttpd中将www.domain.de/news/news_944836.html重写为www.domain.de/news_944836.html? 我所有的Trys没有工作:(
我在这个问题上读了SO主题。 但是,它们只适用于单个主机。 我想为现在和将来的域名的所有服务器有一个统一的规则。 基本上,我想从所有的请求中删除www,只留下域名是可访问的。 Apache也提供HTTPS,那么如何将这个应用到所有的? 谢谢! http://www.example.com >> http://example.com https://www.example.com >> https://example.com 玛丽亚
所以我会喜欢redirect这个url: http:// subdomain .domain.com / subfolder / subsubfolder / 至: http:// www .domain.com / subfolder / subsubfolder / ?parameter = subdomain 还可以使用其他更多,更less或者不使用子文件夹。 我发现这一点,但似乎不适用于子文件夹: RewriteCond%{HTTP_HOST}!^ www.domain.com $ [NC] RewriteCond%{HTTP_HOST} ^([^。] +)。domain.com $ [NC] RewriteRule ^ /(。*)$ http://www.domain.com/?parameter=%1 [L,R = 301]
我试图强制添加www。 如果访问我的网站。 我已经将以下内容添加到我的网站conf文件中: <Directory /var/www/main> Options FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com RewriteRule ^(.*)∞ http://www.example.com/$1 [L,R=permanent] </Directory> 这在访问example.com时效果很好。 但是,如果我做一个符号链接ln -s /path/to/somewhere foo并且我尝试访问example.com/foo,我没有被redirect到www.example.com/foo ,这当然是所期望的,因为/path/to/somewhere不在/var/www/main 对于如何使用符号链接也有任何build议吗?
这个脚本工作完美,强制尾随斜线和隐藏.php扩展名 但! 它不会直接转到.php扩展名。 我怎么也强迫人们直接去file.php到/文件/ RewriteEngine On RewriteRule ^(.*)/$ /$1.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ http://www.mysite.com/$1/ [R=301,L]
我在这里失去了主意。 我有一个.htaccess的网站,内容如下: Options FollowSymLinks <ifmodule mod_rewrite.c> RewriteEngine on rewritecond %{http_host} ^XXX.com.ar [nc] rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc] </ifmodule> 如果用户没有写入,那么只需在URL之前添加“www”即可。 做了一些开发之后,我为我的站点做了一个简单的“路由器”框架。 然后,每个请求都必须去index.php,并“调度”它。 所以,我的.htaccess就这样结束了: Options FollowSymLinks <ifmodule mod_rewrite.c> RewriteEngine on rewritecond %{http_host} ^XXX.com.ar [nc] rewriterule ^(.*)$ http://www.XXX.com.ar/$1 [r=301,nc] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ ../index.php?url=$1 [NC,L] </ifmodule> 问题是,现在,当我去到:XXX.com.ar(没有www),我有一个301 – 永久移动 301 – 永久移动> 301 – 永久移动301 – 永久移动 信息。 […]