gpt4 book ai didi

templates - 如果没有 index.php,除主页之外的 Magento URL 将无法工作

转载 作者:行者123 更新时间:2023-12-02 09:20:09 25 4
gpt4 key购买 nike

我的 magento 安装在 Ubuntu Linux 上的/var/www/magento 下。这个问题看起来像文件馆中的一些问题但实际上有些不同。当我安装 Magento 时Ubuntu Linux 我启用了 Apache mod_rewrite URL 重写。

当我访问http://localhost/magento时我的服务器将 URL 重写为 http://localhost/magento/并显示页面。然后我点击其中一个链接在导航栏中,假设它是导航栏项目“foo”。然后magento带我去:

http://localhost/magento/foo.html

显示“Not Found”apache 页面。

我必须将 URL 更改为 ----->

http://localhost/magento/index.php/foo.html

为了显示页面。

就好像我的 mod_rewrite 工作出了问题。

谢谢

约翰·戈切

配置:系统 -> 配置 ->(常规 ->)Web:

使用 Web 服务器重写:是

基本 URL:http://localhost/magento

如果我将“用户 Web 服务器重写:”设置为“否”,则链接从我的主页工作正常,但请参阅页面http://localhost/magento/index.php/foo.html显示正确的页面,但是该网站正常工作,但我不喜欢该网址。我希望它是 http://localhost/magento/foo.html没有index.php位,因为这也可能更加有利于 SEO。

谢谢

约翰·戈切

<小时/>

更新:我尝试取消注释我的人造 127.0.1.1 IP 地址ubuntu 已将其放入/etc/hosts 并放置我的真实 IP,但是没有运气。我仍然有完全相同的问题。以及里面的网址我的浏览器被重写为 http://localhost/等...每当我在其中输入 192.168.3.31、avalanche 或 avalanche.com。我还在想如何解决这个问题如上所述,因为这没有做到这一点。

127.0.0.1       localhost
#127.0.1.1 avalanche

192.168.4.35 avalanche avalanche.com

当我重新启动 Apache 时,我得到:

# service apache2 restart
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.4.35 for ServerName

不确定如何解决最初的问题。我正在本地服务器上进行测试。

<小时/>

我什至尝试过这个解决方案,然后重新启动 apache2,但没有运气!

How to remove index.php from URLs?

所以放置:

RewriteEngine On
RewriteBase /mymagento/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

不起作用,即使使用RewriteBase/,它也不起作用。

<小时/>

好的,终于解决了这个问题。文件/etc/apache2/sites-enabled/000-default为所有目录设置了以下指令在此文件中定义:

 AllowOverride None

例如,对于/var/www,它是默认文档根目录在 Ubuntu 12.04 LTS Linux 系统上设置此文件包含

    <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

据我了解,这意味着 .htaccess 文件位于该目录及其所有子目录将不会被解析。要解决该问题,只需设置:

AllowOverride All

意味着您将能够覆盖服务器配置指令在/etc/apache2/apache2.conf 中找到(或/etc/apache2/httpd.conf 这是包含在其中)。

AllowOverride 默认设置为 None 的原因之一可能是它会减慢服务器速度,另一个是出于安全原因。这指令应该设置在标签内,并且后者可以覆盖前者。这不是另一个原因默认设置是必须递归解析 .htaccess每次目录路径中的文件被跨站点加载会减慢系统速度,从而放置.htaccess 内容在/etc/apache2/httpd.conf 中可能是推荐的,因为它可能会导致速度增加。

所以放置

    <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
#AllowOverride None
AllowOverride All
Order allow,deny
allow from all
</Directory>

在/etc/apache2/sites-enabled/000-default 内

并运行:service apache2 restart

就是解决方案。

最佳答案

你尝试过吗:

RewriteBase /magento/

而不是 RewriteBase/mymagento/因为您的 url 是 http://localhost/magento/

您的 apache 虚拟主机是否允许覆盖配置,例如

<VirtualHost *:80>
...
<Directory /var/www/magento/>
AllowOverride All
</Directory>
</VirtualHost>

关于templates - 如果没有 index.php,除主页之外的 Magento URL 将无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11702708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com