magento 如何从URL中删除index.php?

ncgqoxb0  于 2022-12-29  发布在  PHP
关注(0)|答案(8)|浏览(129)

我的Magento安装上的所有URL都需要index.php,例如:

http://example.com/index.php/admin/
http://example.com/index.php/customer/account/login/

问题是系统默认链接到如下URL

http://example.com/admin/
http://example.com/customer/account/login/

不管怎样,看起来更漂亮,我想这是一个重写的问题,但在过去的修补已经给了我500,我想先问你们。
更改SEO设置、刷新配置缓存和重新索引URL不起作用。

bbuxkriu

bbuxkriu1#

在开始之前,请确保Apache重写模块已启用,然后按照以下步骤操作。
1.登录到您的Magento管理区域,然后转到系统〉配置〉Web
1.导航到不安全安全选项卡。确保不安全安全-基本URL选项中包含您的域名,并且不要将URL末尾的正斜杠去掉。示例:http://www.yourdomain.co.uk/
1.仍在Web页面上时,导航到搜索引擎优化选项卡,然后选择使用Web服务器重写选项下方的
1.再次导航到安全选项卡(如果尚未在该选项卡上),并在在前端使用安全URL选项上选择
1.现在转到Magento网站文件夹的根目录,并使用此代码进行.htaccess:
重写引擎位于重写基础/重写规则^索引.php$ - [L]重写条件%{请求文件名}!-f重写条件%{请求文件名}!-d重写规则。/index. php [L]
保存.htaccess并替换原始文件。(请确保在使用它之前备份您的原始.htaccess文件!!!)
1.现在转到系统〉缓存管理并选择所有字段,确保将操作下拉列表设置为刷新,然后提交。(这当然会刷新该高速缓存。)

  • —————————〉
    如果此操作不起作用,请执行以下额外步骤。
    1.再次进入系统〉配置〉网站。这次查找当前配置范围并从下拉菜单中选择您的网站。(当然,这是设置为默认配置)
    1.确保不安全安全字段包含与先前默认配置文件相同的域。
    1.导航到搜索引擎优化选项卡,然后选择使用Web服务器重写部分下面的
    1.一旦URL相同,并且启用了重写,保存该页面,然后返回并确保它们都被选为默认值,然后在需要时再次保存。
    1.重复步骤6。
    现在你的index.php问题应该被修复了,一切都应该很好!!!
ep6jt1vc

ep6jt1vc2#

按照下面的步骤,它会帮助你。
第一步:转到你的站点根文件夹,你可以在那里找到.htaccess文件。用文本编辑器打开它,找到#RewriteBase /magento/行。用#RewriteBase /替换它,去掉“magento/”
步骤2:然后进入你的管理面板并启用重写(设置yes为使用Web服务器重写)。2你可以在系统-〉配置-〉Web-〉搜索引擎优化中找到它。
第三步:然后去缓存管理页面(系统缓存管理)和刷新您的缓存和刷新检查网站。

iklwldmw

iklwldmw3#

你必须在apache中启用mod_rewrite来使干净的url工作
如果mod_rewrite不在phpinfo中,您必须通过以下方式安装它

sudo a2enmod rewrite
sudo apache2ctl -l

您需要将出现的AllowOverride none替换为AllowOverride all(在/etc/apache2/sites-enabled/000-default中)
重新启动Apache

sudo service apache2 restart

在Magento的管理转到System > Configuration > Web > search engine Optimization并更改"Use Web Server Rewrites"为是

iyfamqjs

iyfamqjs4#

在你的.htaccess里这样怎么样:

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

alen0pnh5#

嗨,我迟到了...只是想指出,从http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/的指示是非常有用的。
我有Ubuntu服务器安装Apache,MySql和PHP,所以我想我可以跳到标题创建Magento将从服务的目录,我达到了OP相同的问题,例如,我在所有URL中都需要“index.php”(或者我会得到404找不到)。然后我回到安装和配置Apache HTTP服务器,重新启动Apache后,它工作得很完美。
作为参考,我遗漏了:

sudo bash -c "cat >> /etc/apache2/conf.d/servername.conf <<EOF
ServerName localhost
EOF"

...以及

sudo a2enmod rewrite
sudo service apache2 restart

希望这能帮上忙

wnrlj8wa

wnrlj8wa6#

如果其他解决方案对你不起作用,试试这个:

    • 步骤1:**(如果您的安装在webroot中)

替换

#RewriteBase /magento/

RewriteBase /
    • 步骤2:**

添加以下行(包括但不包括admin,因为后端内部需要index.php)

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.yourdomain.com/$1 [R=301,L]
RewriteRule ^index.php/(admin|user)($|/) - [L]
RewriteRule ^index.php/(.*) $1 [R=301,QSA,L]

紧接着

RewriteRule .* index.php [L]

这对我有用
如果它仍然不工作,仔细检查Magento配置:系统-〉配置-〉Web-〉搜索引擎优化。必须启用重写。

zed5wv10

zed5wv107#

我尝试了帖子上的所有方法,但都没有效果。然后我修改了ErJab发布的.htaccess代码片段,改为:

RewriteRule ^(.*)$ 'folder_name'/index.php/$1 [L]

上面的行为我修复了它。其中 folder_name 是magento根文件夹。
希望这有帮助!

anauzrmj

anauzrmj8#

主要是如果您使用的是基于Linux的系统,如'Ubuntu',这只建议本地主机用户,而不是服务器。
按照前面答案中提到的所有步骤操作。+
在Apache配置中检查它。(AllowOverride All)如果AllowOverride值为none,则将其更改为All,然后重新启动apache。

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

让我知道这一步是否对任何人有帮助。因为如果你早点找到它,它可以保存你的时间。

我添加了我在localhost中的htaccess文件中的确切行。供您参考
第110行附近

<IfModule mod_rewrite.c>

############################################
## enable rewrites

Options +FollowSymLinks
RewriteEngine on

############################################
## you can put here your magento root folder
## path relative to web root

#RewriteBase /

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

图像是为一些容易从图像和文本中理解的用户准备的:

相关问题