Articles of Apache.htaccess

.htaccess加载为另一个文件

我正在尝试设置我的htaccess以允许我访问domain.com/file.html,并将其加载到otherdomain.com/file.html 这是我当前的htaccess文件,但是当它运行时,它只是将我redirect到另一个文件。 RewriteEngine On RewriteRule file.html http://mydomain.com/file.html [L] 我在这里做错了什么? 多谢你们。

htaccess的域名和子域名与laravel

我想弄清楚如何设置一个域和子域在共享主机帐户上工作。 这是一个Laravel 5.1应用程序。 我的访问文件是 Options +SymLinksIfOwnerMatch RewriteEngine On RewriteRule ^ index.php [L] 我刚刚购买了另一个域并添加它,但我得到一个500错误。 我重命名访问文件,然后工作。 所以它与访问文件有关。 基本上我想要两个单独的域,我想要两个单独的laravel应用程序,每个应用程序。 我不熟悉atacceess。

.htaccess删除扩展名,但如果不存在则允许404

我已经删除了我的web服务器上的.php文件扩展名。 我只是想让它看起来更好。 这工作很好。 我有以下页面:sitename.com/portfolio sitename.com/portfolio/resume/file.html htaccess有规则,所以当他们访问第二个链接,只是将其转换为portfolio.php?resume&file = $ 1。 这工作真棒。 好吧,继续问题。 因为我删除了扩展名,所以如果用户将域名设置为sitename.com/ portfolio / with traing slash,则会出现内部服务器错误。 同样,如果他们只键入sitename.com/portfolio/r,他们也会因为不存在而出现错误。 我知道一个解决方法是在每个页面的htacess中添加一个选项,但这似乎是一个不好的方法。 反正在这里,我正在使用的当前htacess文件: Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteRule ^portfolio/resumes/([^/]+).html$ /portfolio.php?resume&file=$1 [L,QSA] RewriteRule ^portfolio/resumes$ /portfolio.php?resumes [L,QSA] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ /$1.php [L] ErrorDocument 404 /404.php 如果我访问网站上不存在像sitename.com/1或sitename.com/1.php然后我得到我的404页,但如果1.php DID存在,那么我会看到它,如果它确实存在,我inputsitename.com/1/或sitename.com/1/somethingelse,而不是404(我期望),那么它给我一个内部的服务器错误。 有没有办法解决? 在我的语法错误? 谢谢

Magento网站切换.htaccess

我一直在尝试几个小时,以获得一个不同的商店来显示基于子目录。 我们为Magento设立的舞台网站是针对世界其他地区,美国,​​英国和澳大利亚的商店,它们之间的差异各不相同。 我们已经通过在.htaccess中设置环境variables来工作(为了简洁起见,我将使用基本和澳大利亚商店),然后在index.php文件中使用它来加载正确的商店。 SetEnvIf Host staging\.hostname\.com MAGE_RUN_CODE=base SetEnvIf Host staging\.hostname\.com MAGE_RUN_TYPE=store SetEnvIf Host staging-au\.hostname\.com MAGE_RUN_CODE=au SetEnvIf Host staging-au\.hostname\.com MAGE_RUN_TYPE=website 我现在被任命改变这个使用子目录,所以staging.hostname.com/au/,以及我所投入的任何东西都不起作用。 我在configuration中更改了不同商店的基本url,以指向澳大利亚商店的staging.hostname.com/au/。 从我可以看到它不是拿起我的新的.htaccess线 SetEnvIf Request_URI "^/au/.*" MAGE_RUN_CODE=au SetEnvIf Request_URI "^/au/.*" MAGE_RUN_TYPE=website 我已经尝试了带引号和不带引号的正则expression式,并且使用和不使用通配符(。*)而没有使用任何快乐。 我确实删除/注释掉SetEnvIf主机行,否则可能会导致问题,因为我设置了两次环境variables。 如果我将旧的URL指向商店(staging-au.hostname.com),那么Magento将redirect到商店的staging.hostname.com/au(这意味着旧的.htaccess信息起作用)的基本URL,但随后它默认回到基本商店值,并给我一个404错误。 任何帮助将不胜感激。 Apache版本2.2.21如果有帮助。

如何从URL中删除问号

有什么办法可以从URL中删除问号吗? 现在让我们说URL可以是http://www.domain.com/profile?a=10但也可以是http://www.domain.com/profile?b=ticket 。 所以在第一种情况下,我的url应该是http://www.domain.com/profile/10 ,在第二个http://www.domain.com/profile/ticket 。 但我仍然希望能够在PHP使用$_GET 。 所以我真正想要的只是将问号移除给用户,但在服务器中它应该是一样的。 有什么办法可以做到这一点,可能使用htaccess 。 我在Ubuntu 14.10上运行apache2作为我的networking服务器。

.htaccess加载dynamic文件夹名称中的索引

我有问题.htaccessdynamic文件夹名称中加载索引。 这是我的目录结构: root/products/ -> this is constant folder name 而不是使用GET产品url: root/products/index.php?product=my-product-url 我想把产品文件夹后的产品url,看起来像: root/products/my-product-url 我的.htaccess文件是在产品文件夹中,并有这样的代码: RewriteBase /products/ RewriteRule ^index\.php$ – [L,NC] RewriteRule . index.php [L] 但它不起作用。 它实际上加载的索引文件,但在控制台,我可以看到它是stream氓js文件超过1000次,如果我不停止页面。它看起来像重新加载页面这么多次,并添加我想在时间戳结束这个js文件就像: GET http://www.mysiteexaple.com/js/jalerts/jquery.js?_=1464945951342 你能帮我,请告诉我什么是错的? 谢谢 !

apache不能正确提供静态内容

我一直在研究自己的mvc框架,以进一步学习我的web应用程序,但在静态资源服务方面遇到困难。 我试图有一个单一的入口点进入应用程序,也就是一个前端控制器,所以在我的项目/我有一个.htaccess文件,redirect所有请求到应用程序/文件夹,其他.htaccess通过请求URI到index.php (在app /中)将请求委托给适当的控制器。 但是,当我尝试提供静态内容(如javascript或级联样式表)时,我仍然通过app / index.phpredirect。 我也在/var/log/apache2/errors.log(也许是因为符号链接〜/ www?)变得“favicon.ico不存在/ var / www”错误。 我不期望,因为我的项目根目录下的.htaccess文件: <IfModule mod_rewrite.c> Options -Indexes +FollowSymLinks RewriteEngine On RewriteBase / # ———————————————————————- # Suppress the "www." at the beginning of URLs # ———————————————————————- # The same content should never be available under two different URLs – especially not with and # without "www." […]

如何在我的.htaccess文件中指定一个auto_prepend_file而不用硬编码绝对path?

我有一个PHP文件,我想在每个请求的开始执行。 我在我的htaccess文件中指定了他: php_value auto_prepend_file "alwaysrunthis.php" 问题是,该指令的值在目标脚本的上下文中执行,而不是在.htaccess文件位置的上下文中执行。 所以,如果我正在执行的脚本和prepend文件在同一个目录下,那么它就可以工作,否则就不行。 我意识到我可以使用绝对path,但这不是很便携。 在执行时生成绝对path的.htaccess中是否有可以访问的variables?

如何将dynamicurl转化为静态url

我正在开发一个使用PHP和Apache的网站。 我想从我的url www.example.com/book.php?book=title 成这样的事情,如果有可能的话: www.example.com/book/title 请注意,书的标题是独一无二的,不能重复。 我已经读过关于这个,但是没有任何一个post对于像我这样的初学者来说是足够清晰的。 你们知道任何解释的教程吗? 谢谢。

没有指定input文件 – apache和php-fastcgi

我的客户端的网站目前运行在mod_php的apache服务器上。 所有应用程序的路由都在.htaccess文件中定义(请参阅下面的代码)。 现在他正在尝试迁移到运行apache和php-fastcgi的服务器,但是这些路由没有太长时间的工作。 <IfModule mod_rewrite.c> RewriteEngine On # Redirect RewriteBase / RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ – [NC,L] RewriteRule "^noticias/?$" index.php/noticias/frontend/list/ [L,QSA] RewriteRule ^.*$ index.php [NC,L] </IfModule> 当我访问http://domain.tld/noticias ,我得到No input file specified ,并在Apache的error_log [fcgid:warn] mod_fcgid: stderr: PHP Warning: Unknown: function '1' not found or invalid function name […]